JUnit运行套件

时间:2014-06-01 11:56:04

标签: java eclipse maven junit

我写了一个我在Eclipse中运行的maven-JUnit项目 我有五个班的包:
1. JunitTest1.java
2. JunitTest2.java
3. Adapter.java,
4. JunitTestSuite.java
5. TestRunner.java

JunitTestSuite类中的代码是

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Suite.class)
@SuiteClasses({ JunitTest1.class, JunitTest2.class })
public class JunitTestSuite  {
}

TestRunner类中的代码是:

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class TestRunner {

public static void main(String[] args) {

  Result result = JUnitCore.runClasses(JunitTestSuite.class);

  for (Failure failure : result.getFailures()) {
     System.out.println(failure.toString());
  }
  System.out.println(result.wasSuccessful());
   }  
 } 

当我以Junit Test运行项目时,有4个测试运行,套件下的两个测试和每个测试分别进行;意味着每个测试都运行两次。有关如何只运行套件的任何建议吗? 谢谢!
ORIT

1 个答案:

答案 0 :(得分:0)

如果您使用的是maven,则不需要TestRunner类。你可以在你的pom.xml中将你的套件类介绍给maven,如下所示:

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.17</version>
                <configuration>
                    <argLine>-Xmx3g</argLine>
                    <includes>
                        <include>**/JunitTestSuite.java</include>
                    </includes>
                </configuration>
            </plugin>

它将运行您的套件类,您的测试类将不会运行两次。