我正在使用TeamCity进行测试和生产的自动构建。 TeamCity在Gallio的流程结束时运行我们的mbUnit 3.1测试。
运行测试版本时,Gallio应尝试对测试数据库服务器执行测试。但是,在运行生产版本时,不应运行这些测试,因为TeamCity无法访问生产数据库服务器(即使生产数据库可用,许多测试也会因未发布的代码而失败)。
如何根据布尔值(例如IsDBOnline)标记测试以使其在mbUnit中被忽略?
答案 0 :(得分:3)
创建TestDecoratorAttribute的子类并覆盖Initialize()方法以检查IsDBOnline并调用Assert.Inconclusive(),如果为false。
实现类似效果的另一种方法是在使用Db的测试中添加[Category]属性,然后在生产时运行测试时将其过滤掉。