私のコードには、ディレクトリを作成し、その中にファイルを作成するテストがあります。
ただし、ファイルを書き込むテストの部分が、作成されたディレクトリを見つけることができないため、このテストは失敗します。それを修正する唯一のことは、surefire プラグインを次のようにフォークしないように設定することです。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>never</forkMode>
</configuration>
</plugin>
この修正は、ある JVM プロセスでディレクトリが作成され、別の JVM プロセス/スレッドでファイルが作成されることを意味すると解釈できますか?
このテストの失敗は、最近失敗し始めた単一のマシンに分離されています。
私が試したいくつかのことは次のとおりです。
- システムには多数の JDK バージョンが存在していたため、他の多くのシステムで動作していたバージョン ( 1.6.0_19 ) を除いてすべて削除しました。
- 管理者コマンドプロンプトからそのプロジェクトで「mvn test」を実行しようとしました。
- 親ディレクトリの権限に問題がないことを確認しました。
- プロジェクト全体を最初からチェックアウトして、同じことを試みました。
- これが発生しているディレクトリが、AntiVirus のオンアクセス スキャナから除外されていることを確認しました。
上記のどれも効果がないようです。唯一の違いは構成<forkMode>
です。テストの周りやテストしている機能にコードの変更がまったくないのに、なぜそのテストが突然機能しなくなったのかわかりません。
使用されている maven-surefire-plugin のバージョンは2.12.4です。「never」構成が欠落している場合、最新 (2.14.1) に更新してもテストは修正されません。
<forkMode>
は非推奨ですが、バージョン 2.14 以降のみです。
根本的な問題が何であるかについて、私は本当に興味をそそられます。最終的な結論が、これが HDD やハードウェアの問題であるという単純なものではないことを願っています。