是否可以将测试文件放在子文件夹中

当我在同一目录中有模块及其测试时,它工作正常。


- module1.go

- module1_test.go

但是当文件和测试文件的数量增加时,很难浏览代码。


是否可以将 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()

}


慕田峪7331174
浏览 142回答 1
1回答

POPMUISE

您可以将测试放在另一个目录中,但这并不常见。您的测试将需要导入主题包,并且无法访问主题包中未导出的方法。这将起作用:文件 $GOPATH/src/somepath/package1/module1.gopackage package1func SomeFunc() {}文件 $GOPATH/src/somepath/package1/test/module1_test.gopackage testimport (    "testing"    "somepath/package1")func TestSomeFunc(t *testing.T) {    package1.SomeFunc()}一些注意事项:我将 SomeFunc 更改为导出的方法,以便测试可以访问它。测试导入主题包“somepath/package1”
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go