在测试中排除匿名类

时间:2013-07-04 06:57:31

标签: testing gradle

对测试配置进行一些修改后

test {
    scanForTestClasses = false
    include '**/*Test.class'
    include 'lt/inventi/apollo/scenarios/**'
}

我的测试开始失败,错误为java.lang.Exception: Test class should have exactly one public constructor 所以我的解决方法就是这样

test {
    scanForTestClasses = false
    include '**/*Test.class'
    include 'lt/inventi/apollo/scenarios/**'
    exclude '**/*$*' //fixed 
} 

这是正确的方法吗?

2 个答案:

答案 0 :(得分:3)

关闭测试类扫描后,您有责任过滤掉所有非测试类。如果你不能比scenarios/**更具体,那么你必须补偿一个排除(就像你已经做的那样)。

请注意,将测试类扫描与包含/排除过滤器一起使用是完全可以的。

答案 1 :(得分:0)

我仅在Mac上遇到此问题,发现2个问题:

  • 4.7之前的Gradle版本存在一个#4544错误,导致内部类被拾取

  • 我碰巧使用的Mac JVM(通过SDKMan安装的Zulu 1.8)在命名空间大写(并且关联的文件夹也大写)时出现问题。 ubuntu中的Zulu 1.8很好用,但是低层文件夹似乎可以解决问题