如何避免在不使用忽略属性的mstest中运行测试?

Per*_*Per 4 msbuild tfs mstest visual-studio-2012

与外部服务集成时,我们有几个单元测试。这些服务可能不稳定,并且超出了我们的控制范围,因此有必要将其从我们的日常构建中删除。

由于通常的单元测试是作为门控检入的一部分运行的,因此我们已经在单独的组件中进行了集成测试。

虽然,我们仍希望在日常构建中运行许多集成测试,因此我们无法从日常构建中完全删除程序集。

我试图删除[TestClass]属性,并且在VS2012中可以正常工作。但是,当我们签入并使用TFS(2010)进行构建和运行测试时,出现以下错误。

[错误消息] = UTA004:在Test.TestMethod上非法使用属性。只能在标有TestClass属性的类内部定义TestMethodAttribute。

任何人都知道如何完全删除测试运行吗?[忽略]不会执行,那么我的测试运行将被关于被忽略的测试的警告所困扰。

Dav*_*haw 5

为什么不使用TestCategoryAttribute来装饰您的集成测试。

例如,进行如下测试:

[TestClass]
public class Tests
{
    [TestMethod]
    public void AtomicTest
    {
        Assert.IsTrue(true);
    }

    [TestMethod, TestCategory("Integration")]
    public void IntegrationTest
    {
        Assert.IsFalse(false);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后将您的TFS构建配置为仅运行您感兴趣的构建: