我需要在本地和TeamCity服务器上自动运行项目测试。
本地测试执行必须使用本地数据库连接,并且在TeamCity上运行时,测试必须使用与数据库的远程连接。
所以我需要告诉我的测试,何时使用本地连接以及何时使用远程并传递URL,用户名和密码。
告诉我我决定使用java系统属性。我在Gradle中找到了内置支持
systemProperty 'some.prop', 'value'
问题是,如何为本地测试运行创建标准测试任务,不会传递任何属性,以及自定义测试任务,它将在运行之前设置系统属性?
我试过像
这样的东西task teamCityTest(type : Test) {
scanForTestClasses = false
includes = ['**/*Test.class']
systemProperty 'some.prop', 'value'
}
但NPE失败了,这意味着我做错了什么。
答案 0 :(得分:1)
方法很好(您可以使用Java插件的test
任务在本地运行测试),但您必须为teamCityTest
配置其他属性,例如classpath = configurations.testRuntime
(或甚至classpath = test.classpath
)。有关完整示例,请参阅samples/java/withIntegrationTests
发布中的gradle-all
。