在为柑橘类环境变量分配特定值后,是否可以更改柑橘环境变量

时间:2017-11-30 09:49:52

标签: java spring citrus-framework

我有这样的代码

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,开头是否有任何方法可以在运行时更改柑橘的系统属性。请有人帮忙解决这个问题。

1 个答案:

答案 0 :(得分:0)

Citrus只会在启动时读取一次System属性。这是因为这是应用程序范围的环境设置,启动后不应更改。

您似乎希望根据某些条件加载测试用例。我宁愿使用TestNG测试套件定义,您可以根据包,命名和给出的其他信息包含和排除测试。您可以在testng-documentation中阅读有关该信息的更多信息。

除此之外,我建议将这些测试放入不同的测试组,以便您可以在不同的测试运行中轻松执行这些测试。