【问题标题】:How can I access test methods from sub-directories [duplicate]如何从子目录访问测试方法 [重复]
【发布时间】:2020-02-20 04:40:04
【问题描述】:

我的 Go 项目代码结构如下所示。

project
 |
 +-- x_test.go
 |    
 +-- sub-directory
 |  |  
 |  +-- y_test.go

x_test.go 有一些struct 和仅用于测试目的的方法。

这些struct 和方法在y_test.go 中是不可访问的。 有没有办法可以在子目录中导入测试文件?我无法将文件x_test.go 移动到子目录,因为它使用了根目录中定义的一些接口。

文件y_test.go不能放在根级别,因为它使用了sub-directory中定义的一些实例,这会导致循环依赖。

有没有办法让x_test.go 中定义的方法和结构对y_test.go 可见?

如果我不将x_test.go 视为测试文件,一切正常。即,我将其重命名为 x.go

【问题讨论】:

  • _test.go 来自被测试包以外的包中的文件不会被编译,所以不,你不能让它工作。改为定义普通类型和方法,可能在 internal package 中。
  • 我确实尝试过,但我在x_test.go 中使用了一些未导出的结构。这就是将其保留在根级别的全部原因。将其移动到内部包会导致错误
  • @nikoo28 你想在包之间共享代码吗?测试代码与否,规则很简单,代码必须定义在非测试文件中,并且必须导出。

标签: unit-testing go testing integration-testing


【解决方案1】:

有没有办法让 x_test.go 中定义的方法和结构对 y_test.go 可见?

没有。

【讨论】:

    猜你喜欢
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    相关资源
    最近更新 更多