创建Gradle Test任务的副本

时间:2014-11-13 11:33:02

标签: java gradle teamcity build.gradle

我需要在本地和TeamCity服务器上自动运行项目测试。

本地测试执行必须使用本地数据库连接,并且在TeamCity上运行时,测试必须使用与数据库的远程连接。

所以我需要告诉我的测试,何时使用本地连接以及何时使用远程并传递URL,用户名和密码。

告诉我我决定使用java系统属性。我在Gradle中找到了内置支持

systemProperty 'some.prop', 'value'

问题是,如何为本地测试运行创建标准测试任务,不会传递任何属性,以及自定义测试任务,它将在运行之前设置系统属性?

我试过像

这样的东西
task teamCityTest(type : Test) {
    scanForTestClasses = false
    includes = ['**/*Test.class']
    systemProperty 'some.prop', 'value'
}

但NPE失败了,这意味着我做错了什么。

1 个答案:

答案 0 :(得分:1)

方法很好(您可以使用Java插件的test任务在本地运行测试),但您必须为teamCityTest配置其他属性,例如classpath = configurations.testRuntime(或甚至classpath = test.classpath)。有关完整示例,请参阅samples/java/withIntegrationTests发布中的gradle-all