2015-11-12 113 views
3

我想对我的测试执行结构搜索,以检测所有看起来像测试但未用@Test注释的方法。查找所有没有用'@Test'注释的'public void'方法

我试着用这种模式没有成功(没有匹配的代码中发现):

@$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 

我在做什么错?

回答

2

看来,你必须尝试提供你的模式类也一样,因为它在模板的完成:

class $Class$ { 
    @$Annotation$() 
    $MethodType$ $MethodName$($ParameterType$ $ParameterName$); 
} 

此外,您必须将$method$变量更改为类似should.*|test.*接受不整字只。

我和IntelliJ IDEA的15,它的工作对像的方法测试吧:

public void testSomething() { 

} 

public void shouldSomething() { 

} 
只有

如果$Class$在搜索提供的模板和正则表达式包含.*方法名匹配的任何方法,其中名称以testshould开头。

+1

在下一个版本的IntelliJ IDEA中可能没有周边类的方法模式。 –

+0

谢谢,它的工作原理,但我不得不用'public void'替换'$ MethodType $',因为它也匹配'private'方法 –

+0

@MichalKordas不用客气。是的,我刚插入这个例子,默认情况下它是如何完成的。在测试过程中,我使用了与您提供的相同的模式,但使用了类 – Stanislav

0

您也可以尝试旧式JUnit测试方法在JUnit 4类检查。此检查检测类似测试的方法,但未用@Test进行注释。

+0

。不幸的是,这对我并不适用,因为我的大多数测试用例都是以'should'而不是'test'开始的。 –

相关问题