代码之家  ›  专栏  ›  技术社区  ›  Dave Neeley

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

  •  2
  • Dave Neeley  · 技术社区  · 15 年前

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

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

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

    1 回复  |  直到 15 年前
        1
  •  3
  •   Jeff Brown    15 年前

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

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

    推荐文章