我在visual studio test explorer中遇到这个问题:无法找到一种方法来选择我需要运行的测试:
我有很多测试用TestCaseSource
作为测试资源管理器在许多测试中进行翻译的输入数据,因此对于单一测试方法,我可以有20-30个条目。当我开始在我班上进行多次测试时,选择单个方法的所有条目都是一种痛苦
我知道我可以使用Traits
,但它们不是渲染为层次结构,也不是嵌套在类分组之下。
现在我在一个类中只有两个方法,这就是结果:
选择单一方法的所有案例是痛苦的,当我甚至可以使用20种方法时,最终无法想象情况有没有办法按项目分组测试,然后是按类,然后按方法分组,而不必为每次测试编写一个类?
获取完整信息这是我的代码
public class TestCase
{
public static IEnumerable TestCasesIsNumerico
{
get
{
yield return new TestCaseData("12").Returns(true);
yield return new TestCaseData("12345678901234567890").Returns(true);
yield return new TestCaseData("1,2").Returns(true);
yield return new TestCaseData("1.2").Returns(true);
yield return new TestCaseData("1.000,12").Returns(true);
yield return new TestCaseData("1,000.12").Returns(true);
yield return new TestCaseData("1.000.000").Returns(true);
yield return new TestCaseData("1,000,000").Returns(true);
yield return new TestCaseData("1.000.000.000.000").Returns(true);
yield return new TestCaseData("1,000,000,000,000").Returns(true);
yield return new TestCaseData("1.000.000,00").Returns(true);
yield return new TestCaseData("1,000,000.00").Returns(true);
yield return new TestCaseData("a").Returns(false);
yield return new TestCaseData("a120").Returns(false);
yield return new TestCaseData("12a0").Returns(false);
yield return new TestCaseData("120a").Returns(false);
yield return new TestCaseData("01").Returns(false);
yield return new TestCaseData("1.1.1").Returns(false);
yield return new TestCaseData("1,1,1").Returns(false);
yield return new TestCaseData("1.000.12").Returns(false);
yield return new TestCaseData("1,000,12").Returns(false);
}
}
public static IEnumerable TestCasesValoreNumero
{
get
{
yield return new TestCaseData("12").Returns(12);
yield return new TestCaseData("12345678901234567890").Returns(12345678901234567890);
yield return new TestCaseData("1,2").Returns(1.2);
yield return new TestCaseData("1.2").Returns(1.2);
yield return new TestCaseData("1.000,12").Returns(1000.12);
yield return new TestCaseData("1,000.12").Returns(1000.12);
yield return new TestCaseData("1.000.000").Returns(1000000);
yield return new TestCaseData("1,000,000").Returns(1000000);
yield return new TestCaseData("1.000.000.000.000").Returns(1000000000000);
yield return new TestCaseData("1,000,000,000,000").Returns(1000000000000);
yield return new TestCaseData("1.000.000,12").Returns(1000000.12);
yield return new TestCaseData("1,000,000.12").Returns(1000000.12);
}
}
}
[TestFixture]
public class UtilitaTests
{
[Test, TestCaseSource(typeof(TestCase), "TestCasesIsNumerico")]
public bool isValoreNumerico_RitornaVeroSeNumero(object o)
{
decimal d;
return Utilita.tryValoreNumerico(o, out d);
}
[Category("UtilitaTests-isValoreNumerico_RitornaNumeroCorretto")]
public decimal isValoreNumerico_RitornaNumeroCorretto(object o)
{
decimal d;
Utilita.tryValoreNumerico(o, out d);
return d;
}
}
答案 0 :(得分:4)
不幸的是,除了您已经找到的最高级别的特征(类别),测试程序集,类等之外,它是不可能的。
这是Visual Studio Test Explorer的限制,而不是NUnit。 NUnit适配器仅将信息提供给测试窗口,它不控制任何UI,因此NUnit团队无法改进其工作方式。
我建议您前往Visual Studio UserVoice并投票或输入问题,以便给测试资源管理员一些爱。
您已经知道,但有些人并未意识到您可以在“测试资源管理器”窗口中更改测试分组。为此,请右键单击测试中的任何节点,然后选择group by。