I want to perform structural search on my tests to detect all methods that look like tests but are not annotated with @Test
.
I tried with this pattern with no success (no matching code found):
@$Annotation$ public void $method$()
$Annotation$ - text like: ^Test$, min occurs: 0, max occurs: 0
$method$ - text like: should|test, min occurs: 1, max occurs: 1
What am I doing wrong?
答案 0 :(得分:2)
似乎,你必须尝试为你的模式提供一个类,因为它是在模板中完成的:
class $Class$ {
@$Annotation$( )
$MethodType$ $MethodName$($ParameterType$ $ParameterName$);
}
此外,您必须将$method$
变量更改为should.*|test.*
之类的内容,才能接受整个单词。
我已经使用IntelliJ Idea 15进行了测试,它适用于以下方法:
public void testSomething() {
}
public void shouldSomething() {
}
仅当搜索模板中提供了$Class$
且方法名称正则表达式包含.*
以匹配任何方法时,该名称以test
或should
开头。
答案 1 :(得分:0)
您还可以在JUnit 4类检查中尝试旧样式JUnit测试方法。此检查会检测看起来像测试的方法,但不会使用@Test
进行注释。