2

我在 TestNG 中有一些测试,我使用 Gradle 来运行它们。我想在运行时选择 Spring bean 中的一些属性。

因此,为了选择这个不同的 bean,我想将字符串参数传递给 useTestNG 调用。我的 build.gradle 如下所示:

apply plugin: 'java'
dependencies {
  compile fileTree(dir: 'lib', include: '*.jar')
}
test {  
    useTestNG()
}

参数类似于“bean1”、“bean2”……在 Java 代码中,我将选择使用什么 bean。

    ApplicationContext context = new FileSystemXmlApplicationContext("**/pathToXML.xml");       
    Locators obj = (Locators) context.getBean("bean1");

如果这不是解决此问题的好方法,而另一种方法更好,我将很高兴知道

4

3 回答 3

1

您可以像这样传递所有系统属性:

test {
    systemProperties System.getProperties()
    useTestNG()
}
于 2015-09-30T10:23:27.020 回答
0

您最好将参数从 testng 本身传递给应用程序代码。如果您从 gradle 传入不同的参数,您将阻止从其他地方轻松快速地执行单元测试,例如 Eclipse 之类的 IDE。

于 2013-01-11T17:11:56.663 回答
0

您可以在测试任务中传递系统属性,如下所示:

test{
    systemProperty 'bean1', 'com.foo.Bar'
    useTestNG()
}

在您的 Java 代码中,您可以使用System.getProperty("bean1");

于 2013-11-28T08:00:08.047 回答