我们在与外部服务集成时使用了几个单元测试。这些服务可能不稳定,并且不受我们的控制,这使得有必要将它们从我们的日常构建中删除。
我们已经在单独的程序集中进行了集成测试,因为通常的单元测试是作为我们的gated checkin的一部分运行的。
尽管如此,仍然有许多集成测试我们希望作为日常构建的一部分运行,因此我们无法从日常构建中完全删除程序集。
我试图删除[TestClass]属性,这在VS2012内工作正常。但是当我们签入并使用TFS(2010)来构建和运行测试时,我得到了以下错误。
[errormessage] = UTA004:在Test.TestMethod上非法使用属性。 TestMethodAttribute只能在标有TestClass属性的类中定义。
任何人都知道如何完全删除测试运行? [忽略]不会这样做,那么我的测试运行将会被忽略的测试警告。
答案 0 :(得分:5)
为什么不使用TestCategoryAttribute
来装饰集成测试。
例如,按照以下方式进行测试:
[TestClass]
public class Tests
{
[TestMethod]
public void AtomicTest
{
Assert.IsTrue(true);
}
[TestMethod, TestCategory("Integration")]
public void IntegrationTest
{
Assert.IsFalse(false);
}
}
然后将TFS版本配置为仅运行您感兴趣的版本: