如何修复JHipster集成测试?
我使用的是JHipster版本4.14.3 我已经创建了一个选择所有默认选项的基本monolith应用程序。 接下来,我使用命令jhipster import jdl Model.jdl导入一个简单的jdl文件 jdl文件的内容如下:如何修复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 }
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中指定它。也许我需要等待新语法的发布。