2016-12-03 208 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