Seb*_*itz 10 unit-testing mocha.js jenkins
我有一个摩卡单元测试套件.
当我在本地运行它们时,一切正常.当我在Jenkins CI服务器上运行它们时,它们有时会失败,有时会通过.
我只是无法重现他们失败的原因.什么可能导致这种行为?
由于多种原因,测试可能会间歇性地失败,并确定它们失败的原因通常会揭示您的代码库和环境.
以下是一些可能的原因:
•共享对象 - 如果测试环境未重置为众所周知的状态,则保持状态的单例可能会导致测试之间出现问题.如果您的测试运行器以非确定性顺序执行测试,您可能会看到实际暴露出已损坏状态问题的随机错误
•环境和外部依赖关系 - 任何可以保持状态的外部对象都可能导致不可预测的结果
•时间 - 有时测试是使用超时或线程休眠来编写的,这些测试太具体了.如果构建服务器在高负载下运行,则这些超时可能不够长
作为一般指导,测试必须是:
我会尝试通过将执行程序的数量减少到 1 来缩小问题范围。如果测试仍然间歇性失败,那么您就会发生测试运行战争,否则(假设它们在本地运行良好)它看起来像资源泄漏。
更多信息请访问http://xunitpatterns.com/Erratic%20Test.html
我猜测您正在重复使用测试装置进行多次测试。在某些情况下,测试顺序与本地计算机上的顺序不同,并且在开始测试时您没有正确的夹具。要修复它,您应该为每个测试提供一个干净的夹具。
另一个原因可能是您在运行测试时重用多个位置的数据库(两个具有相同测试配置的构建服务器)。为每个构建服务器提供自己的数据库。或者子/模拟您的数据库层。除非您正在测试与外部资源的连接,否则您的测试不应依赖于外部资源。
| 归档时间: |
|
| 查看次数: |
9884 次 |
| 最近记录: |