我有這個測試夾具,我想與Fitnesse一起運行,它涉及到使用Spring。我一直無法使用ClasspathXmlApplicationContext加載Spring應用程序上下文,我確信它是一個類路徑配置,我只是沒有想到它。如何使用Fitnesse測試夾具加載Spring的應用程序上下文?
所以這是我的設置。
正如你所看到的,fitnesse.jar是項目裏面,所以我可以運行FitNesse的服務器和測試,無論我有一個項目的工作副本(所有維基文件都在裏面了FitNesseRoot文件夾)。 bin是項目的輸出文件夾(其中所有.class都是)。
現在,代碼:
InventarioQueryTest(!從FitNesse的wiki頁面,注意路徑聲明)
!define TEST_SYSTEM {slim}
!path ../bin
!path ../web/WEB-INF/lib/**.jar
|import |
|com.softclear.inventario.test.fitnesse|
|Query:listar status |
|id|nombre|entidad|descripcion|
ListarStatus.java(文字夾具通過調用FitNesse的)
public class ListarStatus {
private ServicioStatus serv;
private ClassPathXmlApplicationContext ctx;
//fitnesse calls the constructor
public ListarStatus(){
ctx = new ClassPathXmlApplicationContext(new String[] {
"applicationContext-ListarStatus.xml",
"applicationContext-dao.xml",
"applicationContext-hibernate.xml"});
//performs dependency injection of DAO and HibernateSession
serv = (ServicioStatus) ctx.getBean("servicioStatus");
}
//and the query method is the test
public List<Object> query() {
List<Status> lista = serv.listarStatus();
QueryResultBuilder builder = new QueryResultBuilder(Status.class);
QueryResult result = builder.build(lista.iterator());
return result.render();
}
}
I用我項目的工作副本中的java -jar運行fitnesse。當我運行測試,這是FitNesse中執行命令:
java -cp fitnesse.jar;../bin;C:\Dev\WS\softclear\SistemaInventario\fitnesse\..\web\WEB-INF\lib\ajax\AjaxFileUpload-0.03.jar;%the.rest.of.the.web-inf/lib.jars...% fitnesse.slim.SlimService 8086
和所有的測試會產生這個錯誤:
java.io.FileNotFoundException: class path resource [applicationContext-ListarStatus.xml] cannot be opened because it does not exist
由於FAS我明白了,路徑! ./bin在維基應該指出所有的子文件夾和東西要包括在classpath(java -cp調用)中,但顯然它不...
任何想法?非常感謝您的時間!