TestNG条件配置方法

TestNG条件配置方法,testng,Testng,我想知道是否有一种拥有不同配置方法的方法(比如在类级别,@Before/AfterClass)可以让用户选择在testcase中使用哪个配置方法。 例如: @BeforeClass public void configuration1 () { // Do your configuration1 } @BeforeClass public void configuration2 () { // Do your configuration2 } 我希望能够选择使用哪种配置方法。当然

我想知道是否有一种拥有不同配置方法的方法(比如在类级别,@Before/AfterClass)可以让用户选择在testcase中使用哪个配置方法。 例如:

@BeforeClass
public void configuration1 () {
   // Do your configuration1
}

@BeforeClass
public void configuration2 () {
   // Do your configuration2
}
我希望能够选择使用哪种配置方法。当然,这可以通过配置方法内部的条件来实现,但我想知道是否可以避免运行不包含特定运行中所需配置的方法

提前谢谢

TestNG提供了自定义默认功能的功能。对于您的需求,需要实施。我不认为命令行参数可以传递给testngxml,但请试试运气。在下面的代码中,“配置”被假定为来自testng xml的参数

示例代码(未测试)


如果决定从java类调用此侦听器,则可以读取cmd行args并将其传递给CustomListener。只是想一想。

根据您的测试设置,您可以只使用组:

public class Test {

  @BeforeClass(groups = {"A"})
  public void configuration1() {...}

  @BeforeClass(groups = {"B"})
  public void configuration2() {...}

  @Test(groups = {"A", "B"})
 public void testFoo() {...} 

  @Test(groups = {"A"})
  public void testFoo() {...} 
}

或者您可能会考虑参数化测试/使用数据提供程序。

运行特定配置的标准是什么?例如,我可以使用两个不同的JVM参数值运行测试:-Dconfiguration=config1或-Dconfiguration=config2。第一个应该使用第一个配置方法运行我的测试,第二个应该使用第二个配置方法运行我的测试。查看上面的听众链接了解详细信息。看起来不错,我会试试的!谢谢这个测试的问题是,同一个测试用例可以有不同的配置方法,我需要能够选择在执行它时使用哪个配置。我不想有组硬编码,并改变他们每次我需要运行它。。。
public class Test {

  @BeforeClass(groups = {"A"})
  public void configuration1() {...}

  @BeforeClass(groups = {"B"})
  public void configuration2() {...}

  @Test(groups = {"A", "B"})
 public void testFoo() {...} 

  @Test(groups = {"A"})
  public void testFoo() {...} 
}