目录结构是:
src src/pkg src/pkg/t1.go src/pkg/t1_test.go
package pkg import ( "fmt" ) func SayHI(){ fmt.Println("this is t1") }
package pkg import ( "testing" ) func TestXYZ(t *testing.T) { SayHI() }
在 dir 处从命令行调用 go test src/pkg
src/pkg
go test t1_test.go
./t1_test.go:8: undefined: SayHI FAIL command-line-arguments [build failed]
但功能在那里
感谢您的任何提示
它按预期工作。
jnml@fsc-r630:~/src/pkg$ go help test usage: go test [-c] [-i] [build flags] [packages] [flags for test binary] 'Go test' automates testing the packages named by the import paths. It prints a summary of the test results in the format: ok archive/tar 0.011s FAIL archive/zip 0.022s ok compress/gzip 0.033s ... followed by detailed output for each failed package. 'Go test' recompiles each package along with any files with names matching the file pattern "*_test.go". These additional files can contain test functions, benchmark functions, and example functions. See 'go help testfunc' for more. By default, go test needs no arguments. It compiles and tests the package with source in the current directory, including tests, and runs the tests. The package is built in a temporary directory so it does not interfere with the non-test installation. In addition to the build flags, the flags handled by 'go test' itself are: -c Compile the test binary to pkg.test but do not run it. -i Install packages that are dependencies of the test. Do not run the test. The test binary also accepts flags that control execution of the test; these flags are also accessible by 'go test'. See 'go help testflag' for details. For more about build flags, see 'go help build'. For more about specifying packages, see 'go help packages'. See also: go build, go vet. jnml@fsc-r630:~/src/pkg$
换句话说:
go test
go test pkg
go test whatever_test.go
要选择要运行的测试,请使用该-run <regular_expression>标志(其中<regular_expression>被解释为两端都有通配符,例如.*<regular_expression>.*)。例如
-run <regular_expression>
<regular_expression>
.*<regular_expression>.*
$ go test -run Say # from within the package's directory
或者
$ go test -run Say my/package/import/path # from anywhere