我正在努力用testNG在类级别声明一个参数。我有一个browser
参数,在方法级别声明时可以正常工作。
因为我正在将测试映射到cucumber步骤定义,并将在方法级别声明一个url
参数,所以我想将browser参数从方法级别转移到类(全局)级别。因此,在xml文件中,我将浏览器参数从测试级别移动到套件级别,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="tests" thread-count="5">
<!-- Parametter moved to suite level -->
<parameter name="Browser" value="CHROME"/>
<parameter name="Browser" value="FF"/>
<test name="Chrome Test">
<classes>
<class name="tests.web.WebTest"/>
</classes>
</test>
<test name="Firefox Test">
<classes>
<class name="tests.web.WebTest"/>
</classes>
</test>
</suite>
然后在测试类中,我从方法和类中删除了浏览器
参数,并将浏览器
声明为公共静态
。不幸的是,浏览器在运行时找不到,导致一个NullPointerExc0019
:
@Parameters("Browser") //parameter declared at class level
public class WebTest {
WebDriver driver = null;
BasePageWeb basePage;
public static String browser; //class variable
@BeforeClass
public void navigateToUrl() {
switch (browser) { //NullpointerException thrown here
case "CHROME":
WebDriverManager.chromedriver().setup();
driver = new ChromeDriver();
break;
case "FF":
WebDriverManager.firefoxdriver().setup();
driver = new FirefoxDriver();
break;
default:
driver = null;
break;
}
driver.get("www.google.com");
}
如何在类级别成功声明浏览器
参数?
为参数注释METHOD
,CONSTRUCTOR
,TYPE
定义了目标ElementTypes。
@Retention(RUNTIME)
@Target({METHOD, CONSTRUCTOR, TYPE})
public @interface Parameters {|
...
TYPE
意味着它可以在类级别上定义。
我试着找到任何使用这种用法的例子,也试着让它自己工作(也试着分配给一个静态变量)。
但是运气不好。。
所以我可以建议这个替代方案(为构造函数定义@Parameter
):
public class WebTest {
public String browser;
@Parameters({ "Browser" })
public WebTest(String browser) {
this.browser = browser;
}
...
}
xml似乎是:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="tests" thread-count="5">
<test name="Chrome Test">
<parameter name="Browser" value="CHROME"/>
<classes>
<class name="tests.web.WebTest"/>
</classes>
</test>
<test name="Firefox Test">
<parameter name="Browser" value="FF"/>
<classes>
<class name="tests.web.WebTest"/>
</classes>
</test>
</suite>
我的意思是,这不是要知道列表是否排序(布尔值),而是像“排序”的比率,像统计学中的相关系数。 例如, > 如果列表中的项目按升序排列,则其比率为1.0
下午好, 问候你,亚历桑德罗
Go的范围可以在地图和切片上迭代,但我想知道是否有一种方法可以在一系列数字上迭代,比如: 或者有没有一种方法来表示Go中的整数范围,就像Ruby对类范围所做的那样?
编辑 如果其他人在这种特殊的情况下,我得到了一些类似于我在调整消费者配置后所寻找的东西。我创建了一个生产者,它将优先级消息发送到三个单独的主题(针对高/中/低优先级),然后创建了三个单独的消费者来消费每一个主题。然后我频繁地轮询优先级较高的主题,而不轮询优先级较低的主题,除非高的主题是空的: poll timeout(方法的参数)确定没有要轮询的记录时等待的时间。我为每个主题设置了一个非常短的时间
我有一个文档,它包含一个数组,如下所示。这是第一份文件。 我需要在聚合框架中用nestedData数组中的_id查找(连接)到另一个集合。