Quellcode durchsuchen

修复使用高版本jdk运行单元测试失败(临时方案).

nieqiurong vor 2 Jahren
Ursprung
Commit
0b2516d9ce

+ 8 - 4
build.gradle

@@ -174,10 +174,14 @@ subprojects {
     test {
         dependsOn("cleanTest", "generatePomFileForMavenJavaPublication")
         useJUnitPlatform()
-        // 解决 IdeaProxyLambdaMetaTest 和 LambdaUtilsTest 测试失败问题
-        //JDK 8测试,请删除以下两行 jvmArgs
-        jvmArgs += ["--add-opens", "java.base/java.lang=ALL-UNNAMED",
-                    "--add-opens", "java.base/java.lang.invoke=ALL-UNNAMED"]
+        // 增加jvm参数不是一个很好的处理方案,最好还是只用java8下跑,下面只是兼容运行一下,但在高版本jdk下还有很多第三方反射库存在问题(等待完全升级)
+        // 部分测试用例如果需要在高版本java下运行用@EnabledOnJre
+        // 例如: https://github.com/cglib/cglib/issues/191
+        if (JavaVersion.current().isJava9Compatible()) {
+            jvmArgs += ["--add-opens", "java.base/java.lang=ALL-UNNAMED",
+                        "--add-opens", "java.base/java.util=ALL-UNNAMED",
+                        "--add-opens", "java.base/java.lang.invoke=ALL-UNNAMED"]
+        }
         exclude("**/phoenix/**")
         exclude("**/postgresql/**")
         exclude("**/generator/**")

+ 3 - 0
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/test/metadata/TableInfoHelperTest.java

@@ -74,6 +74,9 @@ class TableInfoHelperTest {
 
     @Test
     void testIsExistTableId() {
+        MybatisConfiguration mybatisConfiguration = new MybatisConfiguration();
+        TableInfoHelper.initTableInfo(new MapperBuilderAssistant(mybatisConfiguration, ""), ModelOne.class);
+        TableInfoHelper.initTableInfo(new MapperBuilderAssistant(mybatisConfiguration, ""), ModelTwo.class);
         Assertions.assertThat(TableInfoHelper.isExistTableId(ModelOne.class, Arrays.asList(ModelOne.class.getDeclaredFields()))).isTrue();
         assertThat(TableInfoHelper.isExistTableId(ModelTwo.class, Arrays.asList(ModelTwo.class.getDeclaredFields()))).isFalse();
     }