TestNG的组名通常是硬编码的,可能会降低软件的质量。我想知道如何防止硬编码组名。
在TestCase.java中,是的,我可以使用静态的最后字符串,就像@JavaSoftwareTester在这个职位中要求的那样。
public class TestType {
private static final String GROUP_A = "GroupA";
private static final String GROUP_B = "GroupB"
/**
* Avoid instantiation
*/
private TestType() {
}
}但是,这个最后的字符串似乎不能在testNG.xml中使用,例如:
<groups>
<run>
<!-- I don't want hard coded -->
<include name = "GroupA" />
<!-- but this is incorrect -->
<include name = TestType.GROUP_A />
</run>
</groups>摘要:我想防止硬编码的组名,但我找不到合适的机制。请说明如何解决这一问题。
发布于 2017-07-26 09:29:50
您可以使用Beanshell提供的TestNG支持来完成这一任务。
这是你怎么做的
<method-selector> <script language="beanshell"> <![CDATA[ import org.rationale.emotions.stackoverflow.qn45272885.TestClass; groups.containsKey(TestClass.GROUP_B); ]]> </method-selector>
不要忘记在类TestType中公开常量。
要了解更多关于Beanshell与TestNG集成的信息,可以参考我的博客文章这里和官方的TestNG文档这里
https://stackoverflow.com/questions/45272885
复制相似问题