2014-02-11 162 views
1

我知道還有一些關於此主題在stackoverflow的其他問題。但是我正在尋找一個特定的答案 - 如果我使用JUnit,那麼數據不能在不同類別中存在的測試之間共享。 例如一個初始化爲零的靜態變量計數器。我在@Test方法中打印其值。然後在第二課的另一個@Test中做同樣的事情。我喜歡這個Selenium Webdriver的測試框架?

<target name="LoginTestAndPreReqs" depends="dist"> 
    <mkdir dir="${java.test.reports.path}" /> 
    <junit haltonfailure="no" printsummary="true"> 
     <classpath> 
      <pathelement location = "${build}" /> 
     </classpath> 
    <formatter type="xml"/> 
     <batchtest fork="yes" todir="${java.test.reports.path}"> 
      <fileset dir="${build}/"> 
       <include name="**/TestUnits.class"/> 
       <include name="**/TestUnits1.class"/> 
       <exclude name="**/*$*.class"/> 
      </fileset> 
     </batchtest> 
    </junit> 
</target> 

通過build.xml調用都在這兩個班的測試,但輸出顯示的計數器復位到每個TestUnit *方法零。這意味着計數器在這兩個測試之間沒有共享時遞增。

現在,對於selenium我使用的是webdriver API。我想維護用於登錄我的網站的驅動程序對象。當他們出現在不同的類中時,如何在不同的@Test方法之間傳遞此驅動程序對象?用Junit這似乎是不可能的。或者,也許我可能在build.xml中做錯了什麼。似乎每個測試用例都在不同的JVM中調用。

回答

0

當我使用Junit和Webdriver時,我將以後的測試中使用的任何值寫入文本文件。稍後測試會讀取文件以獲取所需的值。

我用這個方法通過在一個測試產生需要一定的預訂類型的另一測試預訂參考。