如何在mbUnit中有条件地忽略测试?

时间:2009-08-14 17:42:22

标签: mbunit gallio

我正在使用TeamCity进行测试和生产的自动构建。 TeamCity在Gallio的流程结束时运行我们的mbUnit 3.1测试。

运行测试版本时,Gallio应尝试对测试数据库服务器执行测试。但是,在运行生产版本时,不应运行这些测试,因为TeamCity无法访问生产数据库服务器(即使生产数据库可用,许多测试也会因未发布的代码而失败)。

如何根据布尔值(例如IsDBOnline)标记测试以使其在mbUnit中被忽略?

1 个答案:

答案 0 :(得分:3)

创建TestDecoratorAttribute的子类并覆盖Initialize()方法以检查IsDBOnline并调用Assert.Inconclusive(),如果为false。

实现类似效果的另一种方法是在使用Db的测试中添加[Category]属性,然后在生产时运行测试时将其过滤掉。