我知道stackoverflow中有关于此主题的其他一些问题。但我正在寻找一个具体的答案 -
如果我使用JUnit,则不能在不同类中的测试之间共享数据。
例如静态变量计数器初始化为零。我在@Test
方法中打印它的值。然后在第二课的另一个@Test
中做同样的事情。我正在通过build.xml
这样的
<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>
但输出显示每个TestUnit *方法的计数器都重置为零。这意味着计数器在这两个测试之间不共享递增。
现在,对于selenium
我正在使用webdriver
API。我想维护用于登录我网站的驱动程序对象。当它们出现在不同的类中时,如何在不同的@Test
方法之间传递此驱动程序对象?使用Junit
这似乎是不可能的。或许我可能在build.xml
做错了。似乎每个测试用例都在不同的JVM
中调用。
答案 0 :(得分:0)
当我使用Junit和Webdriver时,我将以后测试中使用的任何值写入文本文件。然后,稍后的测试将读取到文件以获取所需的值。
我使用此方法将在一个测试中生成的预订参考传递给另一个需要特定预订类型的测试。