2012-09-17 54 views
0

我有一個類,它創建了excel表單。爲此,我將poi-3.2.jar添加到了classpath中。 我正在使用Eclipse3.7。
我通過使用WindowTester Pro記錄工作臺動作來生成測試用例。 我編輯生成的測試用例,並試圖在其中創建Excel表格,以撰寫測試結果。

如果我使用相同的API從正常的java程序(在該插件本身內),它可以創建excel文件而不會出錯。 但是,當我嘗試從測試用例創建,我收到以下錯誤:只用TestCases獲取NoClassDefFoundError

java.lang.NoClassDefFoundError: org/apache/poi/hssf/usermodel/HSSFWorkbook 

我已經加入所需的jar文件到lib文件夾,並添加到構建路徑。 爲什麼它從普通的java程序工作,但不能從WindowTester生成的測試用例工作。

這裏是我的代碼:

import com.windowtester.runtime.IUIContext; 
import com.windowtester.runtime.swt.UITestCaseSWT; 
import com.windowtester.runtime.swt.locator.eclipse.WorkbenchLocator; 

public class Configuration extends UITestCaseSWT { 

/* 
* @see junit.framework.TestCase#setUp() 
*/ 
protected void setUp() throws Exception { 
    super.setUp(); 
    IUIContext ui = getUI(); 
    try { 
     CreateExcelFile file = new CreateExcelFile(); 
     file.CreateExcel(); 
    } catch (Throwable e) { 
     System.out.println("***** Exception catched.. *****"); 
     // fail("Configuration failed"); 
     e.printStackTrace(); 
    } 
    ui.ensureThat(new WorkbenchLocator().hasFocus()); 
} 

/** 
* Main test method. 
*/ 
public void testConfiguration() throws Exception { 

    //Test code 
    } 

@Override 
protected void tearDown() throws Exception { 
    super.tearDown(); 
    // .... 
} 

} 


public class CreateExcelFile { 
HSSFRow row; 
HSSFRichTextString string; 

public void CreateExcel() { 
    try { 
     String filename = "E:/hello.xls"; 
     HSSFWorkbook hwb = new HSSFWorkbook(); 
     HSSFSheet sheet = hwb.createSheet("new sheet"); 

     HSSFRow rowhead = sheet.createRow((short) 0); 
     string = new HSSFRichTextString("TC_Name"); 
     rowhead.createCell((int) 0).setCellValue(string); 
     string = new HSSFRichTextString("Result"); 
     rowhead.createCell((int) 1).setCellValue(string); 

     for (int i = 0; i <= 10; i++) { 
      row = sheet.createRow((short) i); 
      string = new HSSFRichTextString("TC_Name" + i); 
      row.createCell((int) 0).setCellValue(string); 
      if (i % 2 == 0) { 
       row.createCell((int) 1).setCellValue(true); 
      } else { 
       row.createCell((int) 1).setCellValue(false); 
      } 
     } 
     FileOutputStream fileOut = new FileOutputStream(filename); 
     hwb.write(fileOut); 

     fileOut.close(); 
     System.out.println("Your excel file has been generated!"); 
    } catch (Exception ex) { 
     System.out.println(ex); 
    } 
} 

}

誰能幫我。

+0

我不知道窗口測試器的東西,但我的猜測是它使用了不同於你的eclipse classpath的類路徑。包含該jar的構建路徑與您的Window-tester使用的路徑不同。 – Bhaskar

+0

與我的Eclipse.I集成的WindowTester已安裝此插件。 – CharanTej

+0

你可以發佈異常發生的代碼嗎? –

回答

0

我得到了問題原因。它是因爲運行時classpath。我找到的解決方案是在清單編輯器中打開MANIFEST.MF。然後在運行時選項卡的Classpath部分添加所需的JAR。
現在它的工作沒有錯誤。

相關問題