[英]How to ignore particular test case in MSTest
我试图通过为DataRow
属性添加Ignore
关键字来忽略测试用例:
[TestClass]
public class MathTests
{
[TestMethod]
[DataRow(1, 1, 2)]
[DataRow(2, 2, 3), Ignore]
public void Sum_Test(int a, int b, int expectedSum)
{
var sut = new Math();
var sum = sut.Sum(a, b);
Assert.IsTrue(sum == expectedSum);
}
}
public class Math
{
public int Sum(int a, int b)
{
return a + b;
}
}
但它忽略了整个测试:
在 MSTest 中如何忽略特定的测试用例?
首先,没有Ignore
关键字。 你在做什么只是在同一行中组合 2 个属性。 所以,你的代码相当于:
[TestClass]
public class MathTests
{
[TestMethod]
[DataRow(1, 1, 2)]
[DataRow(2, 2, 3)]
[Ignore]
public void Sum_Test(int a, int b, int expectedSum)
{
var sut = new Math();
var sum = sut.Sum(a, b);
Assert.IsTrue(sum == expectedSum);
}
}
属性在属性部分中指定。 属性部分由一对方括号组成,方括号围绕着一个或多个属性的逗号分隔列表。 在这样的列表中指定属性的顺序,以及附加到同一程序实体的部分的排列顺序并不重要。 例如,属性规范 [A][B]、[B][A]、[A, B] 和 [B, A] 是等价的。
你可以做什么:
最简单的解决方案就是将特定数据行注释掉。 (或者你可以使用预编译变量。在这种情况下,启用所有被忽略的测试用例会更容易)
PRO:这很容易。
CONTRA:您将无法在 GUI 中看到这些测试用例
您可以创建 2 个测试并使用TestCathegory
属性标记其中一个测试。
PRO:可以在 GUI 中看到此测试。
PRO:您将能够使用或排除特定TestCathegory
来执行测试。
CONTRA:你必须重复你的测试。
CONTRA:您必须使用命令行参数来包含或排除构建服务器上的特定TestCathegory
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.