如何修复JHipster集成测试?

如何修复JHipster集成测试?,jhipster,Jhipster,我使用的是JHipster版本4.14.3 我已经创建了一个选择所有默认选项的基本monolith应用程序。 接下来,我使用命令jhipster import jdl Model.jdl导入一个简单的jdl文件 jdl文件的内容如下: entity PhoneContact { phoneNumber String required pattern('/\\+?[0-9. ()-]{10,25}/'), isMobile Boolean }

我使用的是JHipster版本4.14.3 我已经创建了一个选择所有默认选项的基本monolith应用程序。 接下来,我使用命令jhipster import jdl Model.jdl导入一个简单的jdl文件 jdl文件的内容如下:

entity PhoneContact {
    phoneNumber         String required pattern('/\\+?[0-9. ()-]{10,25}/'),
    isMobile            Boolean
}
接下来,我想使用以下命令生成docker文件: mvnw包-Pprod dockerfile:生成

这将启动构建过程,该过程在测试阶段失败。 测试失败似乎与phoneNumber上的模式有关,因为当我导入带有注释掉的模式的模型时,我不会得到相同的测试失败。 生成的测试类t.j.t3.web.rest.PhoneContactResourceIntTest包含以下两个声明:

//    private static final String DEFAULT_PHONE_NUMBER = "0287146-2.1)0 0602";
//    private static final String UPDATED_PHONE_NUMBER = "586) .589(1";

    private static final String DEFAULT_PHONE_NUMBER = "0123456789";
    private static final String UPDATED_PHONE_NUMBER = "9876543210";
然而,即使我用更简单的值替换声明,测试仍然会失败,并出现相同的错误。 第一个生成的测试createPhoneContact的堆栈跟踪如下所示:

entity PhoneContact {
    phoneNumber         String required pattern('/\\+?[0-9. ()-]{10,25}/'),
    isMobile            Boolean
}
java.lang.AssertionError:状态应为:但为:在 org.springframework.test.util.AssertionErrors.failAssertionErrors.java:54 在 org.springframework.test.util.AssertionErrors.assertEqualsAssertionErrors.java:81 在 org.springframework.test.web.servlet.result.StatusResultMatchers$10.matchStatusResultMatchers.java:665 在 org.springframework.test.web.servlet.MockMvc$1.andExpectMockMvc.java:171 在 t、 j.t3.web.rest.PhoneContactResourceIntTest.createPhoneContactPhoneContactResourceIntTest.java:107 在sun.reflect.NativeMethodAccessorImpl.invoke0Native方法在 sun.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.java:62 在 sun.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.java:43 java:497 at org.junit.runners.model.FrameworkMethod$1.runReflectVeCallFrameworkMethod.java:50 在 org.junit.internal.runners.model.ReflectiveCallable.runReflectiveCallable.java:12 在 org.junit.runners.model.FrameworkMethod.invokeeexplosivelyframeworkmethod.java:47 在 org.junit.internal.runners.statements.InvokeMethod.evaluateInvokeMethod.java:17 在 org.junit.internal.runners.statements.RunBefores.evaluateRunBefores.java:26 在 org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluateRunBeforeTestMethodCallbacks.java:75 在 org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.EvaluaterUnterTestMethodCallbacks.java:86 在 org.springframework.test.context.junit4.statements.SpringRepeat.evaluateSpringRepeat.java:84 位于org.junit.runners.ParentRunner.runLeafParentRunner.java:325处 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChildSpringJUnit4ClassRunner.java:252 在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChildSpringJUnit4ClassRunner.java:94 位于org.junit.runners.ParentRunner$3.runParentRunner.java:290处 org.junit.runners.ParentRunner$1.scheduleParentRunner.java:71 at org.junit.runners.ParentRunner.runChildrenParentRunner.java:288 at org.junit.runners.ParentRunner.access$000ParentRunner.java:58 org.junit.runners.ParentRunner$2.evaluateParentRunner.java:268 org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluaterUnbeforetClassCallbacks.java:61 在 org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.EvaluaterUnterTestClassCallbacks.java:70 位于org.junit.runners.ParentRunner.runParentRunner.java:363 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runSpringJUnit4ClassRunner.java:191 在 org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.runJUnit4TestReference.java:86 在 org.eclipse.jdt.internal.junit.runner.TestExecution.runTestExecution.java:38 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTestsRemoteTestRunner.java:538 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTestsRemoteTestRunner.java:760 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runRemoteTestRunner.java:460 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.mainRemoteTestRunner.java:206


您的正则表达式与生成的值不匹配。在您的情况下,它希望电话号码以\字符开头。您也不应该在JDL文件中用引号括住正则表达式

JHipster生成适用于通用实体的单元测试,而不知道您的验证规则:生成的测试可能不通过验证规则。在这种情况下,您需要更新单元测试中使用的样本值,以便它们通过验证规则。-


谢谢你,乔恩。我正在使用JHipster IDE编辑jdl文件,遇到了一个关于正则表达式语法的问题,提出了如下问题。我不想以\开头,我想以可选的+开头,但这是正则表达式中的保留字符,所以需要用转义\ . 我用java编写了一个字符串模式=\\+?[0-9.-]{10,25}的测试用例;它给出了预期的结果,但不确定如何在JDL中指定它。也许我需要等待新语法的发布。