2016-06-01 75 views
2

我有一個項目,其中用戶創建並上傳了一個填充了JUnit測試的jar。我的項目運行在Spring,由於某種原因它不會運行。我可以硬編碼JUnit測試,他們工作正常,但一旦我把一個.jar文件中的確切代碼該文件將無法運行。這是我在堆棧溢出的第一個問題,我將不勝感激任何幫助。運行外部JUnit Jar的Spring會導致java.lang.Exception:No runnable methods

這裏是我的代碼

simpletest.jar

import org.junit.Test; 
public class simpletest { 
@Test 
public void sayHello() { 
    System.out.println("Simple test ran"); 
}} 

runjar.java

URL[] classLoaderUrls = new URL[]{new URL("file:///c:/Work/simpletest.jar")}; 
URLClassLoader urlClassLoader = new URLClassLoader(classLoaderUrls); 
Class<?> appiumClass = null; 
try { 
    appiumClass = urlClassLoader.loadClass("simpletest.simpletest"); 
} catch (ClassNotFoundException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
// Run the class using JUnitCore 
JUnitCore junit = new JUnitCore(); 
Result result = junit.run(appiumClass); 
//Display if test was successful 
System.out.println(result.wasSuccessful()); 
+0

上傳jar文件是什麼意思?到一個Maven倉庫? – khmarbaise

回答

1

當你加載URLClassLoader你需要爲它提供電流ClassLoader到加載所需的JUnit庫。

 //Code to run junit test 
     URLClassLoader urlClassLoader = new URLClassLoader(classLoaderUrls, getClass().getClassLoader()); 
+0

非常感謝。我花了很多時間來解決這個問題。我也應該注意到這個問題與春天有關。我會更新這個問題來反映這一點。 – Alslayer

相關問題