From 001001bfd3a268c8b4bfe673655ff2dd795d1ca7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=91=E6=88=9F?= Date: Tue, 1 Dec 2020 20:20:44 +0800 Subject: [PATCH] fully support gradle build and test --- demo/java-demo/build.gradle | 6 ++--- demo/kotlin-demo/build.gradle.kts | 34 ++++++++++++++++++++++++++++ demo/kotlin-demo/settings.gradle.kts | 1 + docs/zh-cn/doc/setup.md | 10 ++++---- 4 files changed, 44 insertions(+), 7 deletions(-) create mode 100644 demo/kotlin-demo/build.gradle.kts create mode 100644 demo/kotlin-demo/settings.gradle.kts diff --git a/demo/java-demo/build.gradle b/demo/java-demo/build.gradle index c9f7863..81b5d42 100644 --- a/demo/java-demo/build.gradle +++ b/demo/java-demo/build.gradle @@ -12,9 +12,9 @@ repositories { dependencies { testImplementation('org.junit.jupiter:junit-jupiter:5.6.2') - testImplementation('com.alibaba.testable:testable-processor:0.3.2-SNAPSHOT') - testAnnotationProcessor('com.alibaba.testable:testable-processor:0.3.2-SNAPSHOT') - testRuntimeOnly('com.alibaba.testable:testable-agent:0.3.2-SNAPSHOT') + testImplementation('com.alibaba.testable:testable-processor:0.3.2') + testAnnotationProcessor('com.alibaba.testable:testable-processor:0.3.2') + testRuntimeOnly('com.alibaba.testable:testable-agent:0.3.2') } test { diff --git a/demo/kotlin-demo/build.gradle.kts b/demo/kotlin-demo/build.gradle.kts new file mode 100644 index 0000000..07f8eb6 --- /dev/null +++ b/demo/kotlin-demo/build.gradle.kts @@ -0,0 +1,34 @@ +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +plugins { + kotlin("jvm") version "1.4.10" +} + +group = "com.alibaba.testable" +version = "1.0.0-SNAPSHOT" +java.sourceCompatibility = JavaVersion.VERSION_1_8 + +repositories { + mavenCentral() +} + +dependencies { + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") + testImplementation("org.junit.jupiter:junit-jupiter:5.6.2") + testImplementation("com.alibaba.testable:testable-processor:0.3.2") + testAnnotationProcessor("com.alibaba.testable:testable-processor:0.3.2") + testRuntimeOnly("com.alibaba.testable:testable-agent:0.3.2") +} + +tasks.withType { + kotlinOptions { + freeCompilerArgs = listOf("-Xjsr305=strict") + jvmTarget = "1.8" + } +} + +tasks.withType { + jvmArgs("-javaagent:${classpath.find { it.name.contains("testable-agent") }!!.absolutePath}") + useJUnitPlatform() +} diff --git a/demo/kotlin-demo/settings.gradle.kts b/demo/kotlin-demo/settings.gradle.kts new file mode 100644 index 0000000..dae155f --- /dev/null +++ b/demo/kotlin-demo/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "demo" diff --git a/docs/zh-cn/doc/setup.md b/docs/zh-cn/doc/setup.md index 42ea016..615f548 100644 --- a/docs/zh-cn/doc/setup.md +++ b/docs/zh-cn/doc/setup.md @@ -60,15 +60,17 @@ @{argLine} -javaagent:${settings.localRepository}/com/alibaba/testable/testable-agent/${testable.version}/testable-agent-${testable.version}.jar ``` +参见项目`java-demo`的[pom.xml](https://github.com/alibaba/testable-mock/blob/master/demo/java-demo/pom.xml)和`kotlin-demo`的[pom.xml](https://github.com/alibaba/testable-mock/blob/master/demo/kotlin-demo/pom.xml)文件。 + ## 在Gradle项目中使用 在`build.gradle`文件中添加TestableMock依赖: ```groovy dependencies { - testImplementation('com.alibaba.testable:testable-processor:0.3.1') - testAnnotationProcessor('com.alibaba.testable:testable-processor:0.3.1') - testRuntimeOnly('com.alibaba.testable:testable-agent:0.3.1') + testImplementation('com.alibaba.testable:testable-processor:0.3.2') + testAnnotationProcessor('com.alibaba.testable:testable-processor:0.3.2') + testRuntimeOnly('com.alibaba.testable:testable-agent:0.3.2') } ``` @@ -80,4 +82,4 @@ test { } ``` -> 注意:由于Gradle的构建与测试运行机制与Maven稍有差异,当前在Gradle项目里,`@PrivateAccessor`注解和`TestableTool.TEST_CASE`功能存在已知BUG,其余功能均可正常使用 +参见项目`java-demo`的[build.gradle](https://github.com/alibaba/testable-mock/blob/master/demo/java-demo/build.gradle)和`kotlin-demo`的[build.gradle.kts](https://github.com/alibaba/testable-mock/blob/master/demo/kotlin-demo/build.gradle.kts)文件。