Maybe, for some reason, the JUnitTask you are running uses JUnit 3.x tests
where methods names must start with "test"... I´m just guessing, but you
could try to rename your test method to start with "test" like public void
testTheSimplestTestEver(){...} and see if it works to confirm (or not).On Thu, May 19, 2011 at 8:10 AM, Frederic Bergeron <[email protected] > wrote: > Hi, > > I'm trying to execute a unit test (junit4) using the maven-antrun-plugin. > I know that the recommended approach is to use the maven-surefire-plugin but > some constraints prevent me from doing so. I've simplified my code to > reproduce the problem. I always get the following exception: > > Testsuite: junit.MyDummyTest > Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0.016 sec > > Testcase: unknown took 0 sec > Caused an ERROR > No runnable methods > java.lang.Exception: No runnable methods > at > org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:177) > at > org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:122) > at org.junit.runners.ParentRunner.validate(ParentRunner.java:269) > at org.junit.runners.ParentRunner.<init>(ParentRunner.java:66) > at > org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:58) > at > org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:13) > at > org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) > at > org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29) > at > org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) > at > org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24) > at junit.framework.JUnit4TestAdapter.<init>(JUnit4TestAdapter.java:31) > at junit.framework.JUnit4TestAdapter.<init>(JUnit4TestAdapter.java:24) > at junit.MyDummyTest.suite(MyDummyTest.java:16) > at > org.apache.maven.plugin.antrun.AntRunMojo.execute(AntRunMojo.java:270) > at > org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) > at > org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) > at > org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) > at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319) > at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) > at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) > at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) > at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) > at > org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) > at > org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) > at > org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) > at > org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) > > What's missing? Or what am I doing wrong? > > If I run the test using Ant, it works fine. > > My pom.xml file looks like this: > > <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=" > http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" > http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd > "> > <modelVersion>4.0.0</modelVersion> > <groupId>gomi</groupId> > <version>0.1.0-SNAPSHOT</version> > <artifactId>junitbug</artifactId> > <packaging>jar</packaging> > <name>JUnitBug</name> > <build> > <plugins> > <plugin> > <groupId>org.apache.maven.plugins</groupId> > <artifactId>maven-antrun-plugin</artifactId> > <version>1.6</version> > <executions> > <execution> > <id>test</id> > <phase>compile</phase> > <configuration> > <target> > <property name="build.compiler" > value="extJavac" /> > > <property name="compile_classpath" > refid="maven.compile.classpath"/> > <property name="runtime_classpath" > refid="maven.runtime.classpath"/> > <property name="test_classpath" > refid="maven.test.classpath"/> > <property name="plugin_classpath" > refid="maven.plugin.classpath"/> > <echo message="compile classpath: > ${compile_classpath}"/> > <echo message="runtime classpath: > ${runtime_classpath}"/> > <echo message="test classpath: > ${test_classpath}"/> > <echo message="plugin classpath: > ${plugin_classpath}"/> > <echo message="junit: ${junit:junit:jar}"/> > <echo > message="env.JAVA_HOME=${env.JAVA_HOME}"/> > <echo message="java.home=${java.home}"/> > <echo > message="env.ANT_HOME=${env.ANT_HOME}"/> > <echo message="ant.home=${ant.home}"/> > > <taskdef name="junit" > classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask" > classpathref="maven.plugin.classpath"/> > <ant antfile="build.xml" target="test" /> > </target> > </configuration> > <goals> > <goal>run</goal> > </goals> > </execution> > <execution> > <id>clean</id> > <phase>clean</phase> > <configuration> > <target> > <ant antfile="build.xml" target="clean" /> > </target> > </configuration> > <goals> > <goal>run</goal> > </goals> > </execution> > </executions> > <dependencies> > <dependency> > <groupId>ant</groupId> > <artifactId>ant-junit</artifactId> > <version>1.6.5</version> > <!--scope>test</scope--> > </dependency> > <dependency> > <groupId>junit</groupId> > <artifactId>junit</artifactId> > <version>4.8.2</version> > <!--scope>test</scope--> > </dependency> > <!--dependency> > <groupId>commons-net</groupId> > <artifactId>commons-net</artifactId> > <version>1.4.1</version> > </dependency> > <dependency> > <groupId>ant</groupId> > <artifactId>ant-commons-net</artifactId> > <version>1.6.5</version> > </dependency> > <dependency> > <groupId>ant</groupId> > <artifactId>ant-nodeps</artifactId> > <version>1.6.5</version> > </dependency--> > </dependencies> > </plugin> > </plugins> > </build> > <dependencies> > <dependency> > <groupId>ant</groupId> > <artifactId>ant-junit</artifactId> > <version>1.6.5</version> > <!--scope>test</scope--> > </dependency> > <dependency> > <groupId>junit</groupId> > <artifactId>junit</artifactId> > <version>4.8.2</version> > <!--scope>test</scope--> > </dependency> > </dependencies> > </project> > > > And here is my test file: > > package junit; > > import org.junit.Test; > import static org.junit.Assert.*; > import junit.framework.JUnit4TestAdapter; > > > public class MyDummyTest { > > @Test > public void theSimplestTestEver() { > assertTrue(true); > } > > public static junit.framework.Test suite() { > return new JUnit4TestAdapter(MyDummyTest.class); > } > > } > > For convenience, a zip file containing the whole project can be downloaded > here: > > http://www.fbergeron.com/tmp/junitbug.zip > > Any help would be very appreciated. > > Frederic Bergeron
