2016-12-03 173 views
0

我正在学习如何设置CI服务器,其中一部分是制作一个.yml文件。我所要做的就是为了构建我的简单Java项目并运行Junit测试,为我提供结果。我尝试了一堆不同的方式来实现这一点,但没有任何工作。运行JUnit测试的YML文件

.yml

language: java 
jdk: 
- oraclejdk7 
script: java TestRunner 

TestRunner.java

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(ForwardingListTest.class); 

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

CI服务器是给我Error: Could not find or load main class TestRunner错误,这没有任何意义,因为TestRunner的有一个主要方法。

任何关于如何修复.yml文件来执行junit测试的帮助都会很棒。

回答

1

显然,你需要编译Java代码,然后才可以运行它:

language: java 
jdk: 
    - oraclejdk7 
script: 
    - javac TestRunner 
    - java TestRunner 

当你使用JUnit,你还需要有一个在你的classpath。对于一个最小的设置,你可以把必要的罐子除了你的代码,并使用

java -classpath junit.jar;hamcrest-core.jar TestRunner 

,但我认真建议,而不是使用一个依赖管理系统像行家或gradle这个。

+0

什么是'hamcrest-core.jar'? – develop1

+0

JUnit依赖的[matcher库](http://hamcrest.org/JavaHamcrest/)。它可以与[JUnit jar]一起使用(https://github.com/junit-team/junit4/wiki/Download-and-Install)。 – flyx