可以将MsTest单元测试按类别分组

Ham*_*jan 7 mbunit unit-testing mstest

MbUnit一个人可以做这样的事情:

[Test]
[TestCategory("Bad Arguments")]
[TestCategory("Fast")]
[ExpectedException(typeof(ArgumentNullException))]
public void TestCopyWithBadHref()
{
   . . . 
}
Run Code Online (Sandbox Code Playgroud)

注意这两个:

[TestCategory("Bad Arguments")]
[TestCategory("Fast")]
Run Code Online (Sandbox Code Playgroud)

由于TeamBuild可以与MsTest集成以执行gated check-ins和/或在晚上运行,因此它是一个很棒的功能!但是,考虑到某些测试可以运行很长时间,可以方便地将它们分成在每次签到确认之前应该运行的测试,以及应该在晚上运行的测试,因为它们的持续时间以及其他因素.

实现这一目标的一种方法可能是创建几个项目 - 一个用于慢速测试,一个用于快速测试等.但是,这种分离是不方便的.项目依赖性不会那么自然,加上一些测试可以在多个逻辑类别中.

如果MsTest有类似于MbUnit长期以来的东西,那将是很棒的.例如,可以运行MbUnit.Cons.exe并指定要与命令行开关一起使用的类别.

我怎样才能实现相同的使用MsTest?我们是MSFT商店,我没有向我的同事出售MbUnit.

Mik*_*ray 15

您可以使用/ category选项过滤VS 2010中的测试.

它使用testcategory属性.有关/ category选项的详细信息.

C#代码可能如下所示:

[Description("test 123456"), TestCategory("Edit Tests"), TestCategory("Non-Smoke"), TestMethod]
public void VerifyEditsPersist()
Run Code Online (Sandbox Code Playgroud)