在创建我的一个源文件( commonutil.go )的单元测试时遇到问题
package util
import "github.com/nu7hatch/gouuid"
// GenerateUUID Returns generated UUID sequence
func GenerateUniqueID(hostname string) (string, error) {
var result, err = uuid.NewV4()
return hostname + ":" + result.String(), err
}
对于上述源,我创建了测试文件“commonutil_test.go”(在同一个包中)
package util
import "testing"
func TestCommonUtil(t *testing.T) {
t.Run("Test generate UUID", func(t *testing.T) {
var uuid, _ = GenerateUniqueID ("test")
//fmt.Printf("UUID isa %v \n", uuid)
if uuid == "" {
t.Errorf("UUID expected, but result is empty ")
}
})
但是,当尝试执行“go test util/commonutil_test.go”时,它显示:
util\commonutil_test.go:8: undefined: GenerateUniqueID
FAIL command-line-arguments [build failed]
在测试中更改为 util.GenerateUniqueID 可以解决问题,但是在使用Goconvey运行覆盖时会导致构建失败:
无法加载包:导入周期不允许包 rudygunawan.com/MyProject/HFLC-Go/util 导入 rudygunawan.com/MyProject/HFLC-Go/util
有什么想法可以解决这个问题吗?我很困惑。
Go 版本是 go1.7.1 windows/386