默认情况下,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 类中具有测试方法时(当测试类有一个公共方法,如查询/命令处理程序时(以及当测试方法放置在内部类中时。