当我将模块及其测试放在同一目录中时,它可以正常工作。
- module1.go
- module1_test.go
但是当文件和测试文件的数量增加时,很难在代码中导航。
是否可以将测试放到子文件夹以获得更清晰的代码结构? 当我尝试这样做时,我得到名称空间错误。
我将文件module1_test.go
放到文件夹./test
- module1.go
- test/module1_test.go
现在我在测试时遇到错误:
test/module1_test.go:8: undefined: someFunc
我的module1.go
代码:
package package1
func someFunc() {
}
我的module1_test.go
代码:
package package1
import (
"testing"
)
func TestsomeFunc(t *testing.T) {
someFunc()
}
答案 0 :(得分:4)
您可以将测试放在另一个目录中,但这不常见。您的测试需要导入主题包,并且不会在主题包中访问未导出的方法。这将有效:
文件$ GOPATH / src / somepath / package1 / module1.go
package package1
func SomeFunc() {
}
文件$ GOPATH / src / somepath / package1 / test / module1_test.go
package test
import (
"testing"
"somepath/package1"
)
func TestSomeFunc(t *testing.T) {
package1.SomeFunc()
}
几点说明: