我们有数百个测试类,其中几十个测试类标记有以下属性:
[测试治具]
[明确]
[类别(“集成测试”)]
因此它们只会在我们通宵自动构建中运行。其余的 TestFixtures 没有指定类别(也没有标记为显式)。
这是我们运行来执行测试的 NAnt 任务:
<nunit2>
<test>
...
<categories>
<include name="IntegrationTests" />
</categories>
...
</test>
</nunit2>
当然,这不会执行任何未分类的测试。
我希望能够做这样的事情:
<nunit2>
<test>
...
<categories>
<include name="*" />
<include name="IntegrationTests" />
</categories>
...
</test>
</nunit2>
所有未分类的测试将与集成测试一起运行。这可能吗?如果是这样,语法是什么?
(注意:我正在寻找如上所述的 NAnt 解决方案,或者 NUnit 命令行解决方案。我当然可以使用不同的选项运行 NUnit 两次,或者将类别放在我的所有 TestFixture 上。这些是我正在寻找的解决方法如果必须的话可以使用,但是能够直接指定未分类的测试会更酷。)
我也遇到了同样的情况,并且一直感到沮丧,直到我发现类别属性不仅可以应用于测试或测试夹具,还可以应用于整个程序集。
我有两个测试程序集,其中包含在本地运行的测试,还有一个测试程序集仅应在构建服务器上运行。我在前两个项目的 AssemblyInfo.cs 中添加了此属性:[assembly: NUnit.Framework.Category("Always")]
。第三个测试项目使用类别属性,例如[Explicit, Category("PublicDatabase")]
正如你所描述的。构建服务器调用 NUnit/include=Always,PublicDatabase
并得到了预期的结果:前两个程序集中的所有测试都运行,并且只有PublicDatabase
在第三次装配运行中进行测试。
当我在前两个项目上本地运行 NUnit 时,我只需在各个程序集上运行它,根本不需要指定类别。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)