我需要知道何时finalize()调用该方法JVM.我创建了一个测试类,当finalize()通过覆盖它来调用方法时,该测试类会写入文件.它没有被执行.谁能告诉我它没有执行的原因?
我设置了一个带有几个测试的类,而不是使用@Before我希望有一个在所有测试之前只执行一次的设置方法.Junit 4.8有可能吗?
我想在JUnit中为测试运行创建自定义html报告.我遇到的问题是在完成所有测试后释放资源并关闭标签.
我保持一个FileChannel打开以便写入报告.由于每个测试应该是带有行的表,并且有数百个,我不想为每个测试打开和关闭通道.这里出现的问题是测试组织 - 我有嵌套套件,所以testRunFinished不是一个选项(指单套件,不是所有测试,我看到了这个问题).TestWatcher也不会帮助我,因为它仅指单一测试.
使用的工具:maven 3.0.5,ff webdriver,junit 4.11.
我正在考虑两个选项:1)每次测试运行时打开和关闭通道2)覆盖finalize()使其关闭通道
他们似乎都不漂亮......我搜索了很多页面,但似乎没有人遇到过同样的问题.
任何更漂亮的解决方案?
使用Selenium + TestNG + Maven.
我想使用OWASP ZAP自动测试漏洞.为此,我需要在所有测试之前启动ZAProxyScanner - 在所有测试之前执行方法.
public void initZap(){
zapScanner = new ZAProxyScanner(ZAP_PROXYHOST,ZAP_PROXYPORT,ZAP_APIKEY);
zapScanner.clear(); //Start a new session
zapSpider = (Spider)zapScanner;
}
Run Code Online (Sandbox Code Playgroud)
并且当执行所有功能测试时 - 运行测试以搜索漏洞
@Test
public void scanning() throws ClientApiException{
spiderWithZap();
setAlertAndAttackStrength();
zapScanner.setEnablePassiveScan(true);
scanWithZap();
}
Run Code Online (Sandbox Code Playgroud)
方法和测试位于一个类中,例如 public class TestSecurity
以下是包含功能测试的包的testng.xml示例
<suite name="Chrome" thread-count="1" parallel="tests" configfailurepolicy="continue">
<test name="chrome">
<parameter name="browser" value="chrome"/>
<packages>
<package name="tests.suiteLogIn"></package>
<package name="tests.suiteSettings"></package>
<package name="tests.suiteSearch"></package>
</packages>
</test>
Run Code Online (Sandbox Code Playgroud)
UPD.在其中发布带有AfterTest的修改代码.我只使用Before/AfterMethod注释
@BeforeMethod(alwaysRun=true)
@Parameters({"browser", "environment"})
public void setUp(@Optional ("firefox") String browser, @Optional ("local") String environment, Method method) throws …Run Code Online (Sandbox Code Playgroud)