我有以下测试功能
func TestIntegrationAppsWithProductionSelf(t *testing.T) {
// here is where the apps array that will act as my test suite is being populated
myapps, err := RetrieveApps(fs)
for _, v := range apps {
v := v
t.Run("", func(t *testing.T) {
t.Parallel()
expectedOutput = `=` + v + `
`
cmpOpts.SingleApp = v
t.Logf("\t\tTesting %s\n", v)
buf, err := VarsCmp(output, cmpOpts)
if err != nil {
t.Fatalf("ERROR executing var comparison for %s: %s\n", v, err)
}
assert.Equal(t, expectedOutput, buf.String())
})
}
}
测试失败,尽管当我删除t.Parallel()(甚至保留子测试结构)时它成功了。
失败(如前所述仅在t.Parallel()合并时发生)与传递给断言的要比较的值不同步这一事实有关,即该assert方法比较了它不应该比较的值)
这是为什么?v := v我还对我不理解的测试套件变量 ( ) 执行了这种神秘的重新分配)
编辑:徘徊如果是使用这个assert包中的方法,我做了以下替换,但最终结果是一样的,
//assert.Equal(t, expectedOutput, buf.String())
if expectedOutput != buf.String() {
t.Errorf("Failed! Expected %s - Actual: %s\n", expectedOutput, buf.String())
}
慕雪6442864
犯罪嫌疑人X
三国纷争
随时随地看视频慕课网APP
相关分类