2

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

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

如何标记一个测试,以便它在 mbUnit 中基于一个布尔值(如 IsDBOnline)被忽略?

4

1 回答 1

3

创建 TestDecoratorAttribute 的子类并重写 Initialize() 方法以检查 IsDBOnline 并在为 false 时调用 Assert.Inconclusive()。

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

于 2009-08-14T20:54:09.370 回答