![](/img/trans.png)
[英]One method fails unit test only when all tests are run but passes when tested individually?
[英]Three Unit tests pass when run separately, only one passes when run together
我有三个测试, FunnyCarSteps.cs , CarLotMaxSteps.cs和CarTypeSteps.cs 。 当运行seperatley时,它们全部通过,但是一起运行时,仅CarLotMaxSteps通过。
CarTypeSteps.cs在第49行失败,使用lambda方法,没有可用的源错误。 FunnyCarSteps.cs在第19行失败,索引超出范围错误。
我是单元测试的新手,不了解发生了什么。
任何帮助是极大的赞赏。
由于Program.Main
是static
,因此您的CarList
可能也是静态的。 NUnit并行运行测试,因此每个测试几乎同时运行,并且每个清除列表并同时添加到列表中。
这就是为什么您的测试可以正常运行,但同时运行会失败的原因。 一个启动并开始测试,然后第二个出现并更改第一个测试正在使用的数据。
您需要从Program
除main之外的所有内容中删除static。 理想情况下,您应该将所有汽车清单代码重构为新的非静态类。 程序用于运行您的程序,它与汽车无关。 您应该在Main中创建CarLot(或任何类)类并执行它,而不是向Program添加属性。
另一个选择是将属性[Parallelizable(ParallelScope.None)]
到每个测试类。 这将导致它们一次运行一次。 这将解决您的测试问题,但不能解决以下事实:除了简单的练习之外,您的代码是不正确的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.