У меня есть проект Java с тестами, написанными на groovy.
Я использую TestNG в качестве основы для модульного тестирования.
У меня также есть несколько тестов, написанных на Java.
Послеmaven test-compile
phase все тесты (как groovy, так и java) компилируются и помещаются в аналогичную папку внутри target/test-classes/
.
Когда я хочу запускать тесты с maven, запускаются только тесты java.
Когда я пытался запустить Groovy Test из IDE (IntelliJ IDEA), он отлично работает.
Я декомпилировал Groovy Test и вот что у меня есть:
package mypackage.core;
import groovy.lang.GroovyObject;
import groovy.lang.MetaClass;
import org.codehaus.groovy.runtime.ScriptBytecodeAdapter;
import org.codehaus.groovy.runtime.callsite.CallSite;
import org.testng.annotations.Test;
@Test
public class Sample
implements GroovyObject
{
public Sample()
{
Sample this;
CallSite[] arrayOfCallSite = $getCallSiteArray();
this.metaClass = $getStaticMetaClass();
MetaClass tmp20_17 = this.metaClass;
this.metaClass = ((MetaClass)ScriptBytecodeAdapter.castToType(tmp20_17, $get$$class$groovy$lang$MetaClass()));
tmp20_17;
while (true)
return;
}
@Test
public void testSomething()
{
CallSite[] arrayOfCallSite = $getCallSiteArray(); Registry registry = arrayOfCallSite[0].callConstructor($get$$class$mypackage$core$internal$Registry());
arrayOfCallSite[1].call(registry, null); for (return; ; return);
}
static
{
tmp10_7 = new Long(0L);
__timeStamp__239_neverHappen1314379332415 = (Long)tmp10_7;
tmp10_7;
tmp28_25 = new Long(1314379332415L);
__timeStamp = (Long)tmp28_25;
tmp28_25;
Class tmp48_45 = ((Class)ScriptBytecodeAdapter.castToType($get$$class$mypackage$core$Sample(), $get$$class$java$lang$Class()));
$ownClass = (Class)tmp48_45;
tmp48_45;
return;
while (true)
return;
}
}
Есть кто-нибудьвстречал похожую проблему?Что здесь может быть не так?Может ли это быть связано с тем, что класс Sample
реализует GroovyObject
?Может ли это быть связано с плохой верной версией?
Спасибо!
UPD: Связанные с Groovy настройки в pom.xml
:
<dependency>
<groupId>org.codehaus.groovy.maven.runtime</groupId>
<artifactId>gmaven-runtime-1.6</artifactId>
<version>1.0</version>
<scope>test</scope>
</dependency>
...
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<goals>
<goal>generateTestStubs</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
Groovy-тесты помещаются в mymodule/src/test/groovy/..
, java-тесты помещаются в mymodule/src/test/java/..
.
После фазы test-compile
они оба находятся в mymodule/target/test-classes/..
.
У меня нет специального раздела для точного запуска в моем pom.xml
, но я смотрю на локальный репозиторий .m2
IМожно сказать, что используется верный плагин версии 2.4.3
.