【发布时间】:2016-02-17 06:27:54
【问题描述】:
我们目前正在使用 Selenium、TestNG 和 Saucelabs。我正在尝试覆盖onTestSuccess 和onTestFailure 侦听器方法,以便我可以根据方法的结果将功能设置为true/false。
我尝试了几种方法都没有成功。简单总结一下:
MainSauceLabsClass.java
public class MainSauceLabsClass {
// .....
public static DesiredCapablities desiredCapabilities;
// ....
@BeforeMethod
//set a whole range of parameters for Saucelabs here,e.g.:
desiredCapabilities = DesiredCapabilities.iphone();
desiredCapabilities.setCapabilities("idleTimeout",300);
// etc...
}
CustomTestListener.java
public class CustomTestListener implements ITestListener {
// ...
@Override
public void onTestSuccess(ITestResult result) {
// I want to pass to saucelabs pass/fail result via "passed" capability. something like
// desiredCapabilities.setCapabilities("passed",true);
}
}
显然问题是我无法在CustomTestListener.java 中引用对象desiredCapabilities,因为它设置在MainSauceLabsClass 中。我的问题是实现这一点的最佳方式是什么。要么:
- 以某种方式在
CustomTestListener中引用相同的desiredCapabilities对象来调用setCapabilities方法? - 在
MainSauceLabsClass中访问onTestSuccess并将其设置在@AfterMethod中以便可以在同一类中引用desiredCapabilities? - 替代方案?
如果需要,很乐意提供更多信息。感谢您的帮助。
【问题讨论】:
-
您已将您的 DesiredCapabilities 对象声明为 public 和 static..那么是什么阻止您使用像“MainSauceLabsClass.desiredCapabilities”这样的对象?在监听器类中
标签: java selenium listener testng saucelabs