Mavenでユニットテスト中にtempファイルに書き込むための正しい方法は何ですか?
質問
私は、ファイルシステムにファイルを書き込むユニットテストを書きました。パスが与えられていない場合、作業ディレクトリに書き込みます。
では、ターゲットディレクトリに書き込む正しい方法は何でしょうか。おそらく、ターゲット ディレクトリの中のディレクトリでしょうか。
もし私がごく単純に
target/
を指定すると、projects ターゲットではなく、親プロジェクトターゲットに書き込まれます。
アップデイト : 実はテスト終了後、ファイルが欲しいのです。ファイルは、サードパーティに送信する必要があるサードパーティのための抽出フォーマットのためのものです。テストは、ファイルのフォーマットが再承認のために変更された場合のみ実行できるように、オン/オフを切り替えることができます。ファイルがどこに行くかは大きな問題ではありませんが、簡単に見つけられるものが欲しいです。
どのように解決するのですか?
あなたは TemporaryFolder JUnitの@Ruleで説明されているように ここに
<ブロッククオートこの TemporaryFolder は、システム・プロパティ java.io.tmpdir で指定されたデフォルトの一時ファイル・ディレクトリにフォルダを作成します。メソッドnewFileは一時ディレクトリに新しいファイルを作成し、newFolderは新しいフォルダーを作成します。
テストメソッドが終了すると、JUnitは自動的にTemporaryFolder内とそれを含むすべてのファイルとディレクトリを削除します。JUnitは、テストが成功しても失敗しても、リソースを削除することを保証します。
質問後の更新
で使用する作業ディレクトリを変更することができます。
maven-surefire-plugin
.
<plugins>
[...]
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.3</version>
<configuration>
<workingDirectory>${project.build.directory}</workingDirectory>
</configuration>
</plugin>
[...]
</plugins>
この作業ディレクトリは、テストに必要な任意のディレクトリに変更することができます。
${project.build.directory}/my_special_dir/
.
surefire プラグインの作業ディレクトリは、実行中のテストにのみ影響し、maven によって実施されるテストにのみ影響します。IDE 内からテストを実行する場合、作業ディレクトリは他のものになります。
関連
-
型に解決できない エラー解決
-
Server Tomcat v9.0 Server at localhost の起動に失敗しました。
-
春ブート複数のデータソースの管理(atomikos)同じサーバーホスト上の複数のプロジェクトを開始する複数のJava - jarのエラーソリューション
-
1分でわかる!恋人の写真をIDEAの背景画像に設定する方法【おすすめ集
-
[解決済み] Androidでファイルをダウンロードし、ProgressDialogで進捗を表示する。
-
[解決済み] Javaで、オブジェクトの大きさを決定する最も良い方法は何ですか?
-
[解決済み] Javaで文字列の文字を反復処理する最も簡単/最も良い/最も正しい方法は何ですか?
-
[解決済み] 永続化中にJPAフィールドを無視する最も簡単な方法は何ですか?
-
[解決済み】maven-shade-pluginは何に使うのか、なぜJavaパッケージを再配置したいのか?
-
[解決済み] Mavenで単体テストを禁止し、統合テストを許可する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Collections.sortがdoubleでソートできない問題を完璧に解決する。
-
Java の switch case 文で必要な定数式の問題の解決法
-
メモ帳でJavaプログラムをコンパイルして実行すると、Could not find or load main class ...というエラーが表示される。解決方法
-
ajax コミット リソースの読み込みに失敗しました: サーバーはステータス 400 で応答しました ()
-
BindException: アドレスはすでに使用中です:バインドエラー解決
-
セミコロン期待値エラー解決
-
コンストラクタDate()が未定義である問題
-
ecplise プロンプトが表示されます。"選択したものは起動できません。" "最近の起動はありません。"
-
Java の double データ型における 0.0 と -0.0 の問題
-
CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。