我们在C#解决方案中进行了10K +单元测试,这些测试在本地和TFS中运行时传递。
现在,我们正在为我们的解决方案堆栈设置Jenkins,我们面临着大约250个Unitests一直失败的问题。
当我尝试使用Visual Studio和Commnad提示符(MSTest)在jenkins安装服务器中运行它们时,会传递相同的单元测试。
您认为这个问题是什么?任何导致查看此问题的信息都会有所帮助。
修改1:
我做了研究而没有找到任何东西,因为问题本身就很奇怪。如果你不清楚请提出问题,而不是唐氏投票。
编辑2:
我能够找出问题所在。它与unittests dll配置文件。当我通过删除配置文件在服务器中执行MSTest时,我看到同样的一组测试失败,这些测试失败了Jenkins设置失败。
我想我们需要修改Jenkins门户中配置的步骤以加载unittests dll配置文件。
答案 0 :(得分:0)
我的猜测是你的测试实际上不是单元测试,而是集成测试或者更糟糕的是,它们会非确定性地失败。除此之外,你要求人们在没有发布源代码的情况下完成不可能的工作。
无论是发布消息,还是聘请了解Jenkins IMO的顾问。
答案 1 :(得分:0)
条件编译符号可能存在问题(例如DEBUG
与RELEASE
代码):在VS中,您通常在发布版本的CI服务器上的DEBUG构建上运行测试。 / p>
还要看一些未正确清理的全局状态。在测试之后可能仍在运行的某些线程似乎已经完成,可能会破坏以后的测试,即使后面的测试位于不同的测试dll中也是如此。如果测试失败取决于测试运行的顺序,有时可以检测到这种情况。
经常遇到的另一个问题是依赖于文件中的测试数据:实际运行测试的虚拟化环境中可能缺少文件。使用Deployment
属性。
答案 2 :(得分:0)
我遇到与NCrunch类似的问题。也许你可以在VS中检查你的" Build" -tag the Platform目标。它应该像Jenkins一样配置。例如"平台目标"是x64,它也应该在Jenkins中使用。