前提・実現したいこと
Javaで作成したwebアプリケーションをビルドしたいが、mavenを使ってビルドしようとした際、
あるJunitを使ったテストで、いくつかのテスト結果がfailureになってしまう。(エラーが出るテストクラスを単体でmavenを使わずに実行すると、結果は全てsuccessになる。)
単体で実行すると全てsuccessになるのに、なぜmavenを使ったビルドの中でテストを行うとfailureになってしまうのかがわからない。
発生している問題・エラーメッセージ
------------------------------------------------------- T E S T S ------------------------------------------------------- Running model.FileModelTest Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.631 sec Running model.RinriModelTest Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec Running model.SaveModelTest Tests run: 14, Failures: 6, Errors: 0, Skipped: 0, Time elapsed: 48.116 sec <<< FAILURE! testMatchWardNumber(model.SaveModelTest) Time elapsed: 0.507 sec <<< FAILURE! java.lang.AssertionError: expected:<NOT_MATCH_WARD_NUMBER> but was:<NOT_INPUT_BASIC_INFO> at org.junit.Assert.fail(Assert.java:88) at org.junit.Assert.failNotEquals(Assert.java:834) at org.junit.Assert.assertEquals(Assert.java:118) at org.junit.Assert.assertEquals(Assert.java:144) at model.SaveModelTest.testMatchWardNumber(SaveModelTest.java:105) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75) testSuccessHspXls(model.SaveModelTest) Time elapsed: 0.26 sec <<< FAILURE! java.lang.AssertionError: expected:<0> but was:<1> at org.junit.Assert.fail(Assert.java:88) at org.junit.Assert.failNotEquals(Assert.java:834) at org.junit.Assert.assertEquals(Assert.java:645) at org.junit.Assert.assertEquals(Assert.java:631) at model.SaveModelTest.testSuccessHspXls(SaveModelTest.java:125) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75) ・・・以下、同様のエラー
該当のソースコード
コメントアウトをしてからビルドするなどして確認した結果、このメソッドを使うとこの事象が起きる事がわかった。
Java
1public boolean isCorrectCity(String stateNumber,String municipality) throws IOException{ 2 3 //都道府県番号から市区町村リストを作成 4 File f = new File("/resource/市区町村名マスタ.csv"); 5 BufferedReader br = new BufferedReader(new FileReader(f)); 6 7 String[][] data = new String[47][300]; 8 String line = br.readLine(); 9 for (int row = 0; line != null; row++) { 10 data[row] = line.split(",", 0); 11 line = br.readLine(); 12 } 13 br.close(); 14 15 //調査票記入内容が市区町村リストに含まれているか判定 16 for(int row = 0; row < data.length; row++) { 17 if(data[row][0].trim().contains(stateNumber)){//都道府県番号が合致する行を検索(CSVから取得した値に謎の空白がある場合があるので、containsで判定) 18 if(Arrays.asList(data[row]).contains(municipality)){//都道府県番号合致行に入力された市区町村名が含まれているか判定 19 return true; 20 }else{ 21 return false; 22 } 23 } 24 } 25 return false; 26 } 27
試したこと
- PC再起動
- ~/.m2/repository内ファイルの削除、maven再実行
- ワークスペース再作成、maven再実行
補足情報(FW/ツールのバージョンなど)
- JavaSE-1.8
- Maven3.3.9
- junit4.12

回答1件
あなたの回答
tips
プレビュー