Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用 TeamCity 进行测试和生产的自动化构建。TeamCity 在流程结束时使用 Gallio 运行我们的 mbUnit 3.1 测试。
在运行测试构建时,Gallio 应该尝试对测试数据库服务器执行测试。但是,在运行生产构建时,不应运行这些测试,因为 TeamCity 无法访问生产数据库服务器(即使生产数据库可用,许多测试也会因未发布的代码而失败)。
如何标记一个测试,以便它在 mbUnit 中基于一个布尔值(如 IsDBOnline)被忽略?
创建 TestDecoratorAttribute 的子类并重写 Initialize() 方法以检查 IsDBOnline 并在为 false 时调用 Assert.Inconclusive()。
实现类似效果的另一种方法是向使用 Db 的测试添加 [Category] 属性,然后在生产环境中运行测试时将其过滤掉。