gpt4 book ai didi

testing - Grails 集成测试以(看似)随机且不可重复的方式失败

转载 作者:行者123 更新时间:2023-11-28 19:52:19 26 4
gpt4 key购买 nike

我们正在 Fixtures 的帮助下为我们的 Grails 2.0.0 应用程序编写集成测试。和 Buid-Test-Data插件。

在测试过程中,发现集成测试有时会失败,有时会通过。运行“test-app”有时会导致所有测试都通过,有时会导致我们的某些测试失败。

当测试失败时,它们是由于在插入域类实例期间违反了唯一约束造成的。这表明测试数据库中仍有记录。我正在运行 H2 数据库,并且在我的 DataSource.groovy 中肯定有 'dbCreate = "create-drop"'。

Grails 2.0 integration test pollution?似乎表明 Grails 中存在严重的测试污染问题。有什么解决办法吗?我有没有打Grails-8530

[编辑] 测试污染似乎是由单元测试引起的。我们已经通过删除单元测试并成功地重复运行“test-app”来证明这一点。

最佳答案

当我遇到这样的错误时,我喜欢尝试找出导致问题的单元测试。这可能有点棘手,因为你的似乎只是偶尔失败。

1) 我会查看最近添加的单元测试。如果这个问题刚刚开始发生,那么这是一个不错的地方。

2) 元类似乎很擅长导致这些类型的错误,因此我会寻找未正确设置/拆除的元类。与 <= 1.3.7 相比,2.0 的问题不大,但可能是问题所在。

3) 我编写了一个以随机顺序执行测试的插件。这可能无法帮助您解决当前的问题。但可能对您有帮助的是它会打印出您所有的测试,这样您就可以接受它给您的内容并运行 grails test-app <pasted list of unit tests> IntegrationTestThatIsFailing然后开始删除单元测试以找到罪魁祸首。 (http://grails.org/plugin/random-test-order)。我在 2.0 中发现了一个我还没有时间修复的错误(在渲染 View 名称上断言时集成测试失败)但它仍然应该为你打印出你的测试名称(这比你自己做更好 :)

关于testing - Grails 集成测试以(看似)随机且不可重复的方式失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9193801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com