SpringBoot(1.3.5)& JDK 8.を使用して開発されたプロジェクト用のJUnitテストケースがあります。8. STSでJUnitテストとしてプロジェクトを実行すると、すべての テストケースは合格したが、 がある、各テストケースの最後にエラーを与える:私はJUnitのカバレッジを実行しようとしています:JUnitテストケースエラー:「アドレスは既に使用中です:バインド」
ERROR [ main] o.a.coyote.http11.Http11NioProtocol o.a.j.l.DirectJDKLog.log(DirectJDKLog.java:182) - |||||||||Failed to start end point associated with ProtocolHandler ["http-nio-8080"]
java.net.BindException: Address already in use: bind
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:340)
at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:773)
at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:473)
at org.apache.catalina.connector.Connector.startInternal(Connector.java:986)
........
........
........
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
ERROR [ main] o.apache.catalina.core.StandardService o.a.j.l.DirectJDKLog.log(DirectJDKLog.java:182) - |||||||||Failed to start connector [Connector[HTTP/1.1-8080]]
org.apache.catalina.LifecycleException: Failed to start component [Connector[HTTP/1.1-8080]]
ポート8080がすでに使用されているように、このエラーが表示されます。これを避けるにはどうすれば エラーが発生し、このすべての20個のテストケースがこのフローなしで1つのフローで実行されるようにしますか?春ブーツで
My code is:--->
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(KYCNotificationApplication.class)
@ActiveProfiles("local")
@WebIntegrationTest
@IntegrationTest({"server.port=0"})
public class DetermineKYCNotificationServiceImplTest {
@InjectMocks
DetermineKYCNotificationServiceImpl kycService;
@Mock
KYCOperationsDao kycOperationsDao;
@Mock
HttpServletRequest httpServletRequest;
@Before
public void setup() throws Exception {
MockitoAnnotations.initMocks(this);
...
}
@Test
public void testMeth1() {
try {
.....
assertTrue(......);
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void testMeth2() {
try {
.....
assertTrue(......);
} catch (Exception e) {
e.printStackTrace();
}
}
...2o more test cases....
STSでJUnitコードカバレッジを実行しているときに、同じポートが使用中の問題であるという問題にまだ直面しています。提案してください。 – Ramesh
テストケースでは、**両方の '' @ WebIntegrationTest'と '@ IntegrationTest'を使用しています。これらの注釈は、一緒に使用することを意図していません。一般的には、@IntegrationTest({"server.port = 0"}) '**または**' @WebIntegrationTest(randomPort = true) 'のいずれかを使用します。私の答えでリンクしているドキュメントを読んで、この場合はSpringが何をしているのかを理解することを強くお勧めします。あなたの迅速な対応のために、問題があなたの次の提案で解決-Thank – glytching
こんにちはグリッチ:@RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(KYCNotificationApplication.class) @ActiveProfiles( "ローカル") @WebIntegrationTest(randomPort =真) – Ramesh