我有一个摩卡单元测试套件。
当我在本地运行它们时,一切正常。当我在Jenkins CI服务器上运行它们时,它们有时会失败,有时会通过。
我只是无法重现他们失败的原因。什么可能导致此行为?
最佳答案
测试可能会由于多种原因而间歇性地失败,而确定失败的原因通常会揭示出您的代码库和环境。
以下是一些可能的原因:
•共享对象-如果测试环境未重置为众所周知的状态,则保持状态的单例可能会在测试之间引起问题。
如果您的测试跑步者以不确定的顺序执行测试,则您可能会看到随机错误,这些错误实际上暴露了损坏的状态问题
•环境和外部依赖性-任何可以保持状态的外部对象都可能导致不可预测的结果
•计时-有时编写的测试超时或线程睡眠太具体。如果构建服务器在高负载下运行,则这些超时时间可能不够长
作为一般指导,测试必须是:
孤立:测试一次集中于一个单元
可重复:每次产生相同的结果
独立的:执行测试的顺序无关紧要
关于unit-testing - 单元测试有时会失败,有时会通过,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12624030/