diff --git a/README.md b/README.md index c17109d..1634bb2 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,8 @@ ## 目录结构 ```bash -|-- testable-core ➜ 核心组件,提供测试辅助功能、注解和工具类 +|-- testable-core ➜ 核心组件,提供注解和工具类 +|-- testable-processor ➜ 编译期代码预处理组件,提供测试辅助功能 |-- testable-agent ➜ JavaAgent组件,提供Mock测试相关功能 |-- testable-maven-plugin ➜ Maven插件组件,用于简化JavaAgent注入 |-- demo diff --git a/demo/java-demo/pom.xml b/demo/java-demo/pom.xml index f4666e4..65d64d5 100644 --- a/demo/java-demo/pom.xml +++ b/demo/java-demo/pom.xml @@ -27,7 +27,7 @@ com.alibaba.testable - testable-core + testable-processor ${testable.version} provided diff --git a/demo/java-demo/src/main/java/com/alibaba/testable/demo/BlackBox.java b/demo/java-demo/src/main/java/com/alibaba/testable/demo/BlackBox.java index 9fa953c..025bb15 100644 --- a/demo/java-demo/src/main/java/com/alibaba/testable/demo/BlackBox.java +++ b/demo/java-demo/src/main/java/com/alibaba/testable/demo/BlackBox.java @@ -12,4 +12,8 @@ public class BlackBox { return data; } + public static BlackBox secretBox() { + return new BlackBox("secret"); + } + } diff --git a/demo/java-demo/src/main/java/com/alibaba/testable/demo/DemoService.java b/demo/java-demo/src/main/java/com/alibaba/testable/demo/DemoService.java index 467be9c..5b0f593 100644 --- a/demo/java-demo/src/main/java/com/alibaba/testable/demo/DemoService.java +++ b/demo/java-demo/src/main/java/com/alibaba/testable/demo/DemoService.java @@ -47,6 +47,13 @@ public class DemoService { return "anything".trim() + "__" + "anything".substring(1, 2) + "__" + "abc".startsWith("ab"); } + /** + * Target 6 - method with static method invoke + */ + public BlackBox getBox() { + return BlackBox.secretBox(); + } + public String callerOne() { return callFromDifferentMethod(); } diff --git a/demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoServiceTest.java b/demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoServiceTest.java index ee4c8f2..8e863c5 100644 --- a/demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoServiceTest.java +++ b/demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoServiceTest.java @@ -1,7 +1,7 @@ package com.alibaba.testable.demo; import com.alibaba.testable.core.accessor.PrivateAccessor; -import com.alibaba.testable.core.annotation.EnablePrivateAccess; +import com.alibaba.testable.processor.annotation.EnablePrivateAccess; import com.alibaba.testable.core.annotation.TestableMock; import org.junit.jupiter.api.Test; @@ -38,6 +38,11 @@ class DemoServiceTest { return false; } + @TestableMock + private BlackBox secretBox() { + return new BlackBox("not_secret_box"); + } + @TestableMock private String callFromDifferentMethod(DemoService self) { if (TEST_CASE.equals("should_able_to_get_test_case_name")) { @@ -52,13 +57,13 @@ class DemoServiceTest { private DemoService demoService = new DemoService(); @Test - void should_able_to_test_private_method() throws Exception { + void should_able_to_mock_private_method() throws Exception { assertEquals("hello - 1", demoService.privateFunc("hello", 1)); assertEquals("hello - 1", PrivateAccessor.invoke(demoService, "privateFunc", "hello", 1)); } @Test - void should_able_to_test_private_field() throws Exception { + void should_able_to_mock_private_field() throws Exception { demoService.count = 2; assertEquals("4", demoService.privateFieldAccessFunc()); PrivateAccessor.set(demoService, "count", 3); @@ -67,19 +72,19 @@ class DemoServiceTest { } @Test - void should_able_to_test_new_object() throws Exception { + void should_able_to_mock_new_object() throws Exception { assertEquals("mock_something", demoService.newFunc()); verify("createBlackBox").times(1); } @Test - void should_able_to_test_member_method() throws Exception { + void should_able_to_mock_member_method() throws Exception { assertEquals("{ \"res\": \"mock_hello\"}", demoService.outerFunc("hello")); verify("innerFunc").times(1); } @Test - void should_able_to_test_common_method() throws Exception { + void should_able_to_mock_common_method() throws Exception { assertEquals("trim_string__sub_string__false", demoService.commonFunc()); verify("trim").times(1); verify("sub").times(1); diff --git a/demo/kotlin-demo/pom.xml b/demo/kotlin-demo/pom.xml index d770b22..a2aef76 100644 --- a/demo/kotlin-demo/pom.xml +++ b/demo/kotlin-demo/pom.xml @@ -40,7 +40,7 @@ com.alibaba.testable - testable-core + testable-processor ${testable.version} provided diff --git a/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/BlackBox.kt b/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/BlackBox.kt index f7b7295..bcf17ea 100644 --- a/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/BlackBox.kt +++ b/demo/kotlin-demo/src/main/kotlin/com/alibaba/testable/demo/BlackBox.kt @@ -19,4 +19,16 @@ class BlackBox(private val data: String) { return data.startsWith(prefix) } + companion object { + fun secretBox(): BlackBox { + return BlackBox("secret") + } + } + +} + +object ColorBox { + fun createBox(color: String): BlackBox { + return BlackBox("${color}_Box") + } } diff --git a/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/DemoServiceTest.kt b/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/DemoServiceTest.kt index 8924af8..f4c29b6 100644 --- a/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/DemoServiceTest.kt +++ b/demo/kotlin-demo/src/test/kotlin/com/alibaba/testable/demo/DemoServiceTest.kt @@ -1,7 +1,7 @@ package com.alibaba.testable.demo import com.alibaba.testable.core.accessor.PrivateAccessor -import com.alibaba.testable.core.annotation.EnablePrivateAccess +import com.alibaba.testable.processor.annotation.EnablePrivateAccess import com.alibaba.testable.core.annotation.TestableMock import com.alibaba.testable.core.tool.TestableTool.* import org.junit.jupiter.api.Assertions.assertEquals @@ -42,31 +42,31 @@ internal class DemoServiceTest { private val demoService = DemoService() @Test - fun should_able_to_test_private_method() { + fun should_able_to_mock_private_method() { assertEquals("hello - 1", PrivateAccessor.invoke(demoService, "privateFunc", "hello", 1)) } @Test - fun should_able_to_test_private_field() { + fun should_able_to_mock_private_field() { PrivateAccessor.set(demoService, "count", 3) assertEquals("5", demoService.privateFieldAccessFunc()) assertEquals(5, PrivateAccessor.get(demoService, "count")) } @Test - fun should_able_to_test_new_object() { + fun should_able_to_mock_new_object() { assertEquals("mock_something", demoService.newFunc()) verify("createBlackBox").times(1) } @Test - fun should_able_to_test_member_method() { + fun should_able_to_mock_member_method() { assertEquals("{ \"res\": \"mock_hello\"}", demoService.outerFunc("hello")) verify("innerFunc").times(1) } @Test - fun should_able_to_test_common_method() { + fun should_able_to_mock_common_method() { assertEquals("trim_string__sub_string__false", demoService.commonFunc()) verify("trim").times(1) verify("sub").times(1) diff --git a/docs/Usage.md b/docs/Usage.md index d29d84e..3a3bb8b 100644 --- a/docs/Usage.md +++ b/docs/Usage.md @@ -3,12 +3,12 @@ ## 引入Testable -首先在项目`pom.xml`文件中添加`testable-core`依赖: +首先在项目`pom.xml`文件中添加`testable-processor`依赖: ```xml com.alibaba.testable - testable-core + testable-processor ${testable.version} provided @@ -51,7 +51,7 @@ 若不希望看到IDE的语法错误提醒,或是在基于JVM的非Java语言项目里(譬如Kotlin语言),也可以借助`PrivateAccessor`工具类来实现私有成员的访问。 -效果见示例项目文件`DemoServiceTest.java`中的`should_able_to_test_private_method()`和`should_able_to_test_private_field()`测试用例。 +效果见示例项目文件`DemoServiceTest.java`中的`should_able_to_mock_private_method()`和`should_able_to_mock_private_field()`测试用例。 ### Mock被测类的任意方法调用 @@ -63,7 +63,7 @@ **注意**:当遇到有两个需覆写的方法重名时,可将需覆写的方法名写到`@TestableMock`注解的`targetMethod`参数里,此时Mock方法自身就可以随意命名了。 -示例项目文件`DemoServiceTest.java`中的`should_able_to_test_common_method()`用例详细展示了这种用法。 +示例项目文件`DemoServiceTest.java`中的`should_able_to_mock_common_method()`用例详细展示了这种用法。 **【2】覆写被测类自身的成员方法** @@ -71,7 +71,7 @@ 操作方法与前一种情况相同,Mock方法的第一个参数类型需与被测类相同,即可实现对被测类自身(不论是公有或私有)成员方法的覆写。 -详见示例项目文件`DemoServiceTest.java`中的`should_able_to_test_member_method()`用例。 +详见示例项目文件`DemoServiceTest.java`中的`should_able_to_mock_member_method()`用例。 **【3】覆写任意类的new操作** @@ -79,7 +79,7 @@ 此时被测类中所有用`new`创建指定类的操作(并使用了与Mock方法参数一致的构造函数)将被替换为对该自定义方法的调用。 -详见示例项目文件`DemoServiceTest.java`中的`should_able_to_test_new_object()`用例。 +详见示例项目文件`DemoServiceTest.java`中的`should_able_to_mock_new_object()`用例。 **【4】识别当前测试用例和调用来源** diff --git a/pom.xml b/pom.xml index 75c5c6b..fc1a7e8 100755 --- a/pom.xml +++ b/pom.xml @@ -10,6 +10,7 @@ testable-core + testable-processor testable-agent testable-maven-plugin demo diff --git a/testable-agent/pom.xml b/testable-agent/pom.xml index aa60b46..de8644a 100755 --- a/testable-agent/pom.xml +++ b/testable-agent/pom.xml @@ -14,6 +14,7 @@ 1.6 UTF-8 8.0.1 + 5.6.2 0.2.1-SNAPSHOT 3.8.1 3.2.0 @@ -29,7 +30,7 @@ org.junit.jupiter junit-jupiter-api - 5.6.2 + ${junit.version} test diff --git a/testable-core/pom.xml b/testable-core/pom.xml index 527caeb..f45a3b8 100644 --- a/testable-core/pom.xml +++ b/testable-core/pom.xml @@ -15,20 +15,14 @@ 1.6 UTF-8 3.8.1 + 5.6.2 - - sun.jdk - tools - ${java.version} - system - ${java.home}/../lib/tools.jar - org.junit.jupiter junit-jupiter-api - 5.6.2 + ${junit.version} test @@ -43,7 +37,6 @@ ${project.compiler.level} ${project.compiler.level} ${project.build.sourceEncoding} - -proc:none diff --git a/testable-core/src/main/java/com/alibaba/testable/core/annotation/TestableMock.java b/testable-core/src/main/java/com/alibaba/testable/core/annotation/TestableMock.java index 75ded6a..c482c9c 100644 --- a/testable-core/src/main/java/com/alibaba/testable/core/annotation/TestableMock.java +++ b/testable-core/src/main/java/com/alibaba/testable/core/annotation/TestableMock.java @@ -1,5 +1,7 @@ package com.alibaba.testable.core.annotation; +import com.alibaba.testable.core.model.MockType; + import java.lang.annotation.*; /** @@ -12,6 +14,11 @@ import java.lang.annotation.*; @Documented public @interface TestableMock { + /** + * type of mock method + */ + MockType value() default MockType.MEMBER_METHOD; + /** * mock specified method instead of method with same name */ diff --git a/testable-core/src/main/java/com/alibaba/testable/core/constant/ConstPool.java b/testable-core/src/main/java/com/alibaba/testable/core/constant/ConstPool.java index fc0d115..78684ae 100644 --- a/testable-core/src/main/java/com/alibaba/testable/core/constant/ConstPool.java +++ b/testable-core/src/main/java/com/alibaba/testable/core/constant/ConstPool.java @@ -5,7 +5,6 @@ package com.alibaba.testable.core.constant; */ public final class ConstPool { - public static final String TESTABLE_PRIVATE_ACCESSOR = "com.alibaba.testable.core.accessor.PrivateAccessor"; public static final String TEST_POSTFIX = "Test"; } diff --git a/testable-core/src/main/java/com/alibaba/testable/core/model/MockType.java b/testable-core/src/main/java/com/alibaba/testable/core/model/MockType.java new file mode 100644 index 0000000..aff6f8a --- /dev/null +++ b/testable-core/src/main/java/com/alibaba/testable/core/model/MockType.java @@ -0,0 +1,14 @@ +package com.alibaba.testable.core.model; + +/** + * Type of mock method + * + * @author flin + */ +public enum MockType { + + MEMBER_METHOD, + STATIC_METHOD, + CONSTRUCTOR + +} diff --git a/testable-core/src/main/java/com/alibaba/testable/core/util/TypeUtil.java b/testable-core/src/main/java/com/alibaba/testable/core/util/TypeUtil.java index 2a63695..4afde11 100644 --- a/testable-core/src/main/java/com/alibaba/testable/core/util/TypeUtil.java +++ b/testable-core/src/main/java/com/alibaba/testable/core/util/TypeUtil.java @@ -36,7 +36,7 @@ public class TypeUtil { /** * type equals */ - public static boolean typeEquals(Class[] classesLeft, Class[] classesRight) { + private static boolean typeEquals(Class[] classesLeft, Class[] classesRight) { if (classesLeft.length != classesRight.length) { return false; } diff --git a/testable-core/src/main/resources/META-INF/services/javax.annotation.processing.Processor b/testable-core/src/main/resources/META-INF/services/javax.annotation.processing.Processor deleted file mode 100644 index c5c34d5..0000000 --- a/testable-core/src/main/resources/META-INF/services/javax.annotation.processing.Processor +++ /dev/null @@ -1 +0,0 @@ -com.alibaba.testable.core.processor.EnablePrivateAccessProcessor diff --git a/testable-processor/pom.xml b/testable-processor/pom.xml new file mode 100644 index 0000000..76ba6e8 --- /dev/null +++ b/testable-processor/pom.xml @@ -0,0 +1,59 @@ + + + 4.0.0 + + Unit test enhancement toolkit + com.alibaba.testable + testable-processor + 0.2.1-SNAPSHOT + testable-processor + + + 1.6 + 1.6 + UTF-8 + 3.8.1 + 5.6.2 + 0.2.1-SNAPSHOT + + + + + com.alibaba.testable + testable-core + ${testable.version} + + + sun.jdk + tools + ${java.version} + system + ${java.home}/../lib/tools.jar + + + org.junit.jupiter + junit-jupiter-api + ${junit.version} + test + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${plugin.compiler.version} + + ${project.compiler.level} + ${project.compiler.level} + ${project.build.sourceEncoding} + -proc:none + + + + + + diff --git a/testable-core/src/main/java/com/alibaba/testable/core/processor/EnablePrivateAccessProcessor.java b/testable-processor/src/main/java/com/alibaba/testable/processor/EnablePrivateAccessProcessor.java similarity index 86% rename from testable-core/src/main/java/com/alibaba/testable/core/processor/EnablePrivateAccessProcessor.java rename to testable-processor/src/main/java/com/alibaba/testable/processor/EnablePrivateAccessProcessor.java index 17582d2..c3dc5fb 100644 --- a/testable-core/src/main/java/com/alibaba/testable/core/processor/EnablePrivateAccessProcessor.java +++ b/testable-processor/src/main/java/com/alibaba/testable/processor/EnablePrivateAccessProcessor.java @@ -1,10 +1,10 @@ -package com.alibaba.testable.core.processor; +package com.alibaba.testable.processor; -import com.alibaba.testable.core.annotation.EnablePrivateAccess; -import com.alibaba.testable.core.constant.ConstPool; -import com.alibaba.testable.core.model.TestableContext; -import com.alibaba.testable.core.translator.EnablePrivateAccessTranslator; -import com.alibaba.testable.core.util.TestableLogger; +import com.alibaba.testable.processor.annotation.EnablePrivateAccess; +import com.alibaba.testable.processor.constant.ConstPool; +import com.alibaba.testable.processor.model.TestableContext; +import com.alibaba.testable.processor.translator.EnablePrivateAccessTranslator; +import com.alibaba.testable.processor.util.TestableLogger; import com.sun.tools.javac.api.JavacTrees; import com.sun.tools.javac.code.Symbol; import com.sun.tools.javac.processing.JavacProcessingEnvironment; @@ -26,7 +26,7 @@ import java.util.Set; /** * @author flin */ -@SupportedAnnotationTypes("com.alibaba.testable.core.annotation.EnablePrivateAccess") +@SupportedAnnotationTypes("com.alibaba.testable.processor.annotation.EnablePrivateAccess") public class EnablePrivateAccessProcessor extends AbstractProcessor { private TestableContext cx; diff --git a/testable-core/src/main/java/com/alibaba/testable/core/annotation/EnablePrivateAccess.java b/testable-processor/src/main/java/com/alibaba/testable/processor/annotation/EnablePrivateAccess.java similarity index 83% rename from testable-core/src/main/java/com/alibaba/testable/core/annotation/EnablePrivateAccess.java rename to testable-processor/src/main/java/com/alibaba/testable/processor/annotation/EnablePrivateAccess.java index bca263a..c151fcc 100644 --- a/testable-core/src/main/java/com/alibaba/testable/core/annotation/EnablePrivateAccess.java +++ b/testable-processor/src/main/java/com/alibaba/testable/processor/annotation/EnablePrivateAccess.java @@ -1,4 +1,4 @@ -package com.alibaba.testable.core.annotation; +package com.alibaba.testable.processor.annotation; import java.lang.annotation.*; diff --git a/testable-processor/src/main/java/com/alibaba/testable/processor/constant/ConstPool.java b/testable-processor/src/main/java/com/alibaba/testable/processor/constant/ConstPool.java new file mode 100644 index 0000000..65e5218 --- /dev/null +++ b/testable-processor/src/main/java/com/alibaba/testable/processor/constant/ConstPool.java @@ -0,0 +1,11 @@ +package com.alibaba.testable.processor.constant; + +/** + * @author flin + */ +public final class ConstPool { + + public static final String TESTABLE_PRIVATE_ACCESSOR = "com.alibaba.testable.core.accessor.PrivateAccessor"; + public static final String TEST_POSTFIX = "Test"; + +} diff --git a/testable-core/src/main/java/com/alibaba/testable/core/generator/BaseGenerator.java b/testable-processor/src/main/java/com/alibaba/testable/processor/generator/BaseGenerator.java similarity index 84% rename from testable-core/src/main/java/com/alibaba/testable/core/generator/BaseGenerator.java rename to testable-processor/src/main/java/com/alibaba/testable/processor/generator/BaseGenerator.java index 884943f..4778f84 100644 --- a/testable-core/src/main/java/com/alibaba/testable/core/generator/BaseGenerator.java +++ b/testable-processor/src/main/java/com/alibaba/testable/processor/generator/BaseGenerator.java @@ -1,6 +1,6 @@ -package com.alibaba.testable.core.generator; +package com.alibaba.testable.processor.generator; -import com.alibaba.testable.core.model.TestableContext; +import com.alibaba.testable.processor.model.TestableContext; import com.sun.tools.javac.tree.JCTree.*; /** diff --git a/testable-core/src/main/java/com/alibaba/testable/core/generator/PrivateAccessStatementGenerator.java b/testable-processor/src/main/java/com/alibaba/testable/processor/generator/PrivateAccessStatementGenerator.java similarity index 88% rename from testable-core/src/main/java/com/alibaba/testable/core/generator/PrivateAccessStatementGenerator.java rename to testable-processor/src/main/java/com/alibaba/testable/processor/generator/PrivateAccessStatementGenerator.java index 1404f2b..7dd9dd8 100644 --- a/testable-core/src/main/java/com/alibaba/testable/core/generator/PrivateAccessStatementGenerator.java +++ b/testable-processor/src/main/java/com/alibaba/testable/processor/generator/PrivateAccessStatementGenerator.java @@ -1,7 +1,7 @@ -package com.alibaba.testable.core.generator; +package com.alibaba.testable.processor.generator; -import com.alibaba.testable.core.model.TestableContext; -import com.alibaba.testable.core.constant.ConstPool; +import com.alibaba.testable.processor.model.TestableContext; +import com.alibaba.testable.processor.constant.ConstPool; import com.sun.tools.javac.tree.JCTree.*; import com.sun.tools.javac.util.List; import com.sun.tools.javac.util.ListBuffer; diff --git a/testable-core/src/main/java/com/alibaba/testable/core/model/TestableContext.java b/testable-processor/src/main/java/com/alibaba/testable/processor/model/TestableContext.java similarity index 94% rename from testable-core/src/main/java/com/alibaba/testable/core/model/TestableContext.java rename to testable-processor/src/main/java/com/alibaba/testable/processor/model/TestableContext.java index 2a77bc9..76419fd 100644 --- a/testable-core/src/main/java/com/alibaba/testable/core/model/TestableContext.java +++ b/testable-processor/src/main/java/com/alibaba/testable/processor/model/TestableContext.java @@ -1,6 +1,6 @@ -package com.alibaba.testable.core.model; +package com.alibaba.testable.processor.model; -import com.alibaba.testable.core.util.TestableLogger; +import com.alibaba.testable.processor.util.TestableLogger; import com.sun.tools.javac.api.JavacTrees; import com.sun.tools.javac.tree.TreeMaker; import com.sun.tools.javac.util.Names; diff --git a/testable-core/src/main/java/com/alibaba/testable/core/translator/BaseTranslator.java b/testable-processor/src/main/java/com/alibaba/testable/processor/translator/BaseTranslator.java similarity index 94% rename from testable-core/src/main/java/com/alibaba/testable/core/translator/BaseTranslator.java rename to testable-processor/src/main/java/com/alibaba/testable/processor/translator/BaseTranslator.java index 197c4c3..5d3d8f4 100644 --- a/testable-core/src/main/java/com/alibaba/testable/core/translator/BaseTranslator.java +++ b/testable-processor/src/main/java/com/alibaba/testable/processor/translator/BaseTranslator.java @@ -1,4 +1,4 @@ -package com.alibaba.testable.core.translator; +package com.alibaba.testable.processor.translator; import com.sun.tools.javac.tree.JCTree.*; import com.sun.tools.javac.tree.TreeTranslator; diff --git a/testable-core/src/main/java/com/alibaba/testable/core/translator/EnablePrivateAccessTranslator.java b/testable-processor/src/main/java/com/alibaba/testable/processor/translator/EnablePrivateAccessTranslator.java similarity index 94% rename from testable-core/src/main/java/com/alibaba/testable/core/translator/EnablePrivateAccessTranslator.java rename to testable-processor/src/main/java/com/alibaba/testable/processor/translator/EnablePrivateAccessTranslator.java index cedc798..3ae3c1b 100644 --- a/testable-core/src/main/java/com/alibaba/testable/core/translator/EnablePrivateAccessTranslator.java +++ b/testable-processor/src/main/java/com/alibaba/testable/processor/translator/EnablePrivateAccessTranslator.java @@ -1,8 +1,8 @@ -package com.alibaba.testable.core.translator; +package com.alibaba.testable.processor.translator; -import com.alibaba.testable.core.constant.ConstPool; -import com.alibaba.testable.core.generator.PrivateAccessStatementGenerator; -import com.alibaba.testable.core.model.TestableContext; +import com.alibaba.testable.processor.constant.ConstPool; +import com.alibaba.testable.processor.generator.PrivateAccessStatementGenerator; +import com.alibaba.testable.processor.model.TestableContext; import com.sun.tools.javac.tree.JCTree.*; import com.sun.tools.javac.util.ListBuffer; import com.sun.tools.javac.util.Name; diff --git a/testable-core/src/main/java/com/alibaba/testable/core/util/StringUtil.java b/testable-processor/src/main/java/com/alibaba/testable/processor/util/StringUtil.java similarity index 93% rename from testable-core/src/main/java/com/alibaba/testable/core/util/StringUtil.java rename to testable-processor/src/main/java/com/alibaba/testable/processor/util/StringUtil.java index c32ea51..94669d9 100644 --- a/testable-core/src/main/java/com/alibaba/testable/core/util/StringUtil.java +++ b/testable-processor/src/main/java/com/alibaba/testable/processor/util/StringUtil.java @@ -1,4 +1,4 @@ -package com.alibaba.testable.core.util; +package com.alibaba.testable.processor.util; import java.util.List; diff --git a/testable-core/src/main/java/com/alibaba/testable/core/util/TestableLogger.java b/testable-processor/src/main/java/com/alibaba/testable/processor/util/TestableLogger.java similarity index 92% rename from testable-core/src/main/java/com/alibaba/testable/core/util/TestableLogger.java rename to testable-processor/src/main/java/com/alibaba/testable/processor/util/TestableLogger.java index aac6273..b326715 100644 --- a/testable-core/src/main/java/com/alibaba/testable/core/util/TestableLogger.java +++ b/testable-processor/src/main/java/com/alibaba/testable/processor/util/TestableLogger.java @@ -1,4 +1,4 @@ -package com.alibaba.testable.core.util; +package com.alibaba.testable.processor.util; import javax.annotation.processing.Messager; import javax.tools.Diagnostic; diff --git a/testable-processor/src/main/resources/META-INF/services/javax.annotation.processing.Processor b/testable-processor/src/main/resources/META-INF/services/javax.annotation.processing.Processor new file mode 100644 index 0000000..70c23c8 --- /dev/null +++ b/testable-processor/src/main/resources/META-INF/services/javax.annotation.processing.Processor @@ -0,0 +1 @@ +com.alibaba.testable.processor.EnablePrivateAccessProcessor diff --git a/testable-core/src/test/java/com/alibaba/testable/core/util/StringUtilTest.java b/testable-processor/src/test/java/com/alibaba/testable/processor/util/StringUtilTest.java similarity index 90% rename from testable-core/src/test/java/com/alibaba/testable/core/util/StringUtilTest.java rename to testable-processor/src/test/java/com/alibaba/testable/processor/util/StringUtilTest.java index 131a3a1..c7c1935 100644 --- a/testable-core/src/test/java/com/alibaba/testable/core/util/StringUtilTest.java +++ b/testable-processor/src/test/java/com/alibaba/testable/processor/util/StringUtilTest.java @@ -1,4 +1,4 @@ -package com.alibaba.testable.core.util; +package com.alibaba.testable.processor.util; import org.junit.jupiter.api.Test;