如何忽略 MSTest 中的特定测试用例
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;
}
}
但它忽略了 整个 测试:
- 目标:.NET 6
- MSTest.TestFramework: v2.2.8
- IDE:骑手
如何在 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);
}
}
Attributes are specified in attribute sections. An attribute section
consists of a pair of square brackets, which surround a
comma-separated list of one or more attributes. The order in which
attributes are specified in such a list, and the order in which
sections attached to the same program entity are arranged, is not
significant. For instance, the attribute specifications [A][B],
[B][A], [A, B], and [B, A] are equivalent.
你可以做什么:
最简单的解决方案就是将特定数据行注释掉。 (或者你可以使用预编译变量。这样的话,启用所有被忽略的测试用例会更容易)
PRO:这很简单。
CONTRA:您将无法在 GUI 中看到这些测试用例
您可以创建 2 个测试并使用 TestCathegory
属性标记其中一个测试。
PRO:将有可能在 GUI 中看到此测试。
PRO:您将能够使用或排除特定的 TestCathegory
.
来执行测试
CONTRA:您必须重复您的测试。
CONTRA:您必须使用命令行参数来包含或排除构建服务器上的特定 TestCathegory
。
我试图通过为 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;
}
}
但它忽略了 整个 测试:
- 目标:.NET 6
- MSTest.TestFramework: v2.2.8
- IDE:骑手
如何在 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);
}
}
Attributes are specified in attribute sections. An attribute section consists of a pair of square brackets, which surround a comma-separated list of one or more attributes. The order in which attributes are specified in such a list, and the order in which sections attached to the same program entity are arranged, is not significant. For instance, the attribute specifications [A][B], [B][A], [A, B], and [B, A] are equivalent.
你可以做什么:
最简单的解决方案就是将特定数据行注释掉。 (或者你可以使用预编译变量。这样的话,启用所有被忽略的测试用例会更容易)
PRO:这很简单。
CONTRA:您将无法在 GUI 中看到这些测试用例
您可以创建 2 个测试并使用
TestCathegory
属性标记其中一个测试。PRO:将有可能在 GUI 中看到此测试。
PRO:您将能够使用或排除特定的
来执行测试TestCathegory
.CONTRA:您必须重复您的测试。
CONTRA:您必须使用命令行参数来包含或排除构建服务器上的特定
TestCathegory
。