在子类中查找测试方法的固定约定



默认情况下,Fixie聪明地在具有Tests postfix的类中查找测试方法。它运行顺利,并且执行所有测试时没有繁琐的 xUnit 样式属性。但是我倾向于根据所测试方法的名称将我的测试分组到嵌套类中:

public class ConnectorTests
{
  public class Connect
  {
    ... //Connect method tests
  }
  public class Disconnect
  {
    ... //Disconnect method tests
  }
}

如果以这种方式对测试进行分组,则 Fixie 不会看到具有默认约定的测试方法。自定义约定应该如何解决这个问题?

我最终编写了以下约定:

    class TestingConvention : Convention
    {
        public TestingConvention()
        {
            Classes
                .Where(x =>
                {
                    if (x.Name.EndsWith("Tests"))
                        return true;
                    if (x.DeclaringType != null && x.DeclaringType.Name.EndsWith("Tests"))
                        return true;
                    return false;
                });
        }
    }

它涵盖了两种情况,当我直接在 xxxTests 类中具有测试方法时(当测试类有一个公共方法,如查询/命令处理程序时(以及当测试方法放置在内部类中时。

最新更新