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

时间:2017-02-09 11:31:30

标签: .net

默认情况下Fixie巧妙地在Tests postfix的类中查找测试方法。它运行顺畅,所有测试都在没有繁琐的xUnit风格属性的情况下执行。但我倾向于根据测试方法的名称将我的测试分组到嵌套类中:

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

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

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

1 个答案:

答案 0 :(得分:0)

我最后写了以下约定:

    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类中测试方法的两种情况(当测试类有一个像Query / Command处理程序这样的公共方法时)以及测试方法放在一个内在类中时。