我有这样的代码
System.setProperty("citrus.xml.file.name.pattern", "/**/*test.xml");
我希望在加载上下文文件后更改文件名模式,并且可以通过此代码
来创建属性文件 @Test @Parameters("context")
@CitrusXmlTest()
public void xmlTest(@Optional @CitrusResource TestContext context)
{
ct=context.getApplicationContext();
StandardEnvironment config= (StandardEnvironment) ct.getEnvironment();
System.out.println("111111111111"+config.getPropertySources());
MutablePropertySources msr=config.getPropertySources();
Map m=new HashMap();
m.put("citrus.xml.file.name.pattern","/**/*xyz.xml");
MapPropertySource mps=new MapPropertySource("systemProperties", m);
msr.addFirst(mps);
}
在这个测试用例之后,我有另一个这样的测试用例
@CitrusXmlTest(packageScan= "com.citrus.testcases")
public void CitrusTest()
{
}
我正在尝试此代码,但柑橘并未影响已更改的系统属性 在下一个测试用例中,它正在执行已加载的filenamepattern,开头是否有任何方法可以在运行时更改柑橘的系统属性。请有人帮忙解决这个问题。
答案 0 :(得分:0)
Citrus只会在启动时读取一次System属性。这是因为这是应用程序范围的环境设置,启动后不应更改。
您似乎希望根据某些条件加载测试用例。我宁愿使用TestNG测试套件定义,您可以根据包,命名和给出的其他信息包含和排除测试。您可以在testng-documentation中阅读有关该信息的更多信息。
除此之外,我建议将这些测试放入不同的测试组,以便您可以在不同的测试运行中轻松执行这些测试。