我的问题如下:
如果测试用例在同一名称空间中,我有一个数量,这些测试用例按A和B类别分类,我需要先运行A类,然后运行B类。
问题是,当我选择类别(在nunit gui)时,该工具按照它们出现的顺序运行测试,而不是按照我期望的类别运行。
例如,我有测试用例:
我需要先跑: WhenUserTriesToCreateTopic和WhenUserTriesToCreateAreas 第二个: WhenUserTriesToAddLineItemGroup
但它们按照列表中的顺序运行。请问,我该如何以我需要的方式运行测试?
谢谢!
答案 0 :(得分:1)
NUnit建立在任何单个测试完全自治的概念之上。如果在运行测试之前需要完成某些操作,可能会将它们放在SetUp
方法中,如果您的测试有任何副作用,则可能需要TearDown
方法来撤消那些副作用,但除此之外,它假设任何单个测试都可以在任何时间运行,并且该测试顺序无关紧要。这对开发人员有几个好处,因为您可以运行任何测试集而不必担心其先决条件,并且一个测试的通过/失败条件不依赖于不同测试的通过/失败条件。
我建议你重新考虑为什么你的测试首先有这些限制,并尝试重写它们,以便它们测试更多孤立的功能,并且没有系统的先决条件状态。原则上,您可以将这些测试组合到一个测试中,以便您可以处理依赖关系,但这通常不是一个很好的解决方案,因为它通常会导致非常大的测试(而单元测试通常会测试非常小的条件或片段功能)。最好先看一下你需要测试的条件,然后从头开始编写每个测试来测试这个条件,而不要假设你的系统处于任何状态或者已经运行过任何其他测试。 / p>
如果没有更多关于您要测试的内容的细节,很难就如何改进您的系统提出具体建议,但一般来说,如果每个测试完全自主,您将从单元测试中获得最大收益。