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

时间:2012-11-27 09:59:23

标签: tfs msbuild visual-studio-2012 mstest

我们在与外部服务集成时使用了几个单元测试。这些服务可能不稳定,并且不受我们的控制,这使得有必要将它们从我们的日常构建中删除。

我们已经在单独的程序集中进行了集成测试,因为通常的单元测试是作为我们的gated checkin的一部分运行的。

尽管如此,仍然有许多集成测试我们希望作为日常构建的一部分运行,因此我们无法从日常构建中完全删除程序集。

我试图删除[TestClass]属性,这在VS2012内工作正常。但是当我们签入并使用TFS(2010)来构建和运行测试时,我得到了以下错误。

[errormessage] = UTA004:在Test.TestMethod上非法使用属性。 TestMethodAttribute只能在标有TestClass属性的类中定义。

任何人都知道如何完全删除测试运行? [忽略]不会这样做,那么我的测试运行将会被忽略的测试警告。

1 个答案:

答案 0 :(得分:5)

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

例如,按照以下方式进行测试:

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

    [TestMethod, TestCategory("Integration")]
    public void IntegrationTest
    {
        Assert.IsFalse(false);
    }
}

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