4

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

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

尽管如此,我们仍然希望在日常构建中运行一些集成测试,因此我们无法从日常构建中完全删除程序集。

我试图删除 [TestClass] 属性,并且在 VS2012 中运行良好。但是当我们签入并让 TFS (2010) 构建和运行测试时,我得到了以下错误。

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

有人知道如何完全删除测试运行吗?[Ignore] 不行,然后我的测试运行将被关于忽略测试的警告弄得一团糟。

4

1 回答 1

6

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

例如让你的测试像这样:

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

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

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

于 2012-11-27T14:14:56.767 回答