gpt4 book ai didi

unit-testing - Grails 集成测试仅在使用 'grails test-app' 运行时失败

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

当我使用 grails test-app -integration 运行我的集成测试套件时,所有测试都通过了。但是,当我使用 grails test-app 运行它们时,单元测试通过了,但集成测试失败并出现错误:

Cannot set readonly property: requestAttributes for class: 
org.springframework.web.context.request.RequestContextHolder

现在,我搜索了 RequestContextHolder 的所有实例,但未能找到由测试/应用程序设置它的位置。

我的问题是,只运行集成测试与运行整个测试套件有什么不同?我遇到过测试失败的情况,因为在之前的测试中没有调用 registerMetaClass,但这种情况似乎有所不同,因为它是一个完整的套件。

最佳答案

这对我来说听起来像是测试污染。

我会尝试只运行一个单元测试和一个集成测试。如果失败,切换到不同的单元测试,看看它是否仍然失败。如果它只运行一个单元测试,那么它很可能是一个不好的单元测试,您可以开始通过集成测试分批运行它们,看看是什么导致了失败。

如果您的项目处于源代码控制之下,我会为此类事情做的另一件事是恢复到测试全部通过并确保它们仍然运行的已知良好版本。可能是您环境中的某些东西。如果它运行,请转到提示的一半进行修订并尝试。继续进行手动二进制搜索,直到缩小范围。

两者都是gitmercurial have a built in feature called "bisect"这使您可以搜索导致失败的确切修订,而无需手动更新。如果您在另一个 RCS 上,它也可能有类似的东西。

关于unit-testing - Grails 集成测试仅在使用 'grails test-app' 运行时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8525136/

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