Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Batchテスト実施時にoutputのcsvファイルが出力されたままである #1339

Closed
rnakagawa16 opened this issue Oct 9, 2024 · 3 comments · Fixed by #1680
Closed
Labels
target: Dressca サンプルアプリケーションDresscaに関係がある 内部の改善 機能更新やドキュメント更新ではない改善
Milestone

Comments

@rnakagawa16
Copy link
Contributor

概要

./gradlew batch:test 実行時に、テストに使用されるcsvファイルが出力されたままとなっており、テストを実行するたびにgithub上で差分が発生している。

詳細 / 機能詳細(オプション)

Spring Batch Test の @afterall アノテーションを利用して、テスト終了時に以下の出力ファイルを削除するように設定する

  • catalogItem_tasklet.csv
  • outputData.csv

完了条件

  • テスト実施終了後に上記2ファイルが削除されている
  • テストが正常に終了する
  • アプリケーションが正常に動作する
@rnakagawa16 rnakagawa16 added target: Dressca サンプルアプリケーションDresscaに関係がある サンプルAP labels Oct 9, 2024
@tsuna-can-se
Copy link
Contributor

@rnakagawa16
テストが失敗したときも、出力のcsvファイルは消えてしまいますか?
通常テスト実施後はクリーンアップしないほうが、失敗原因を追究しやすいので気にしています。
単純にGitの差分だけの問題ならgitignoreに登録するという手もあるので。

@rnakagawa16
Copy link
Contributor Author

rnakagawa16 commented Oct 9, 2024

テストの出力ファイルの仕様

テストメソッドをVSCodeの機能で検証する場合

VSCodeの機能によって、下図のように失敗箇所を確認できます。
そのため、特に出力ファイルを残しておく必要はあまりないように考えています。
image

コマンドで実行する場合(./gradlew batch:test)

テスト結果の出力先ファイルが、各メソッドで同一のファイル名で出力されるため、失敗した出力ファイルが成功した出力ファイルに上書きされてしまうという現象があります。
失敗原因の追及という意味においては、ファイルが上書きされてしまうことを考えると現時点での実装でも役割を果たせていないように思っています。

以上のことから、コマンドで実行する場合の対処法として、以下の対応をとることが解決策であると考えます。

  • 失敗原因の追究のためファイルが上書きされてしまうことを防止するために出力ファイルをメソッドごとに分け、すべての出力ファイル(csvファイル)をgitignoreに設定する
    もしくは
  • 出力ファイルを削除する仕様とし、失敗した部分に関してはエラー内容が記載されているindex.htmlを参照するか、失敗した1つのメソッドを対象にVSCodeのテストを再度実行して内容を確認する

@tsuna-can-se
Copy link
Contributor

tsuna-can-se commented Oct 9, 2024

@rnakagawa16
なるほど、テストコード内で期待結果を見ているから情報としては残るということですね。

ファイルをとっておく手段として、「test-outputs」フォルダーにcsvを出力し、gitignoreで「test-outputs」を除外する、というやり方もありますね。
.NETだとそういう思想になってたりするので、同じ考え方が通用するかもしれません。

@tsuna-can-se tsuna-can-se added this to the v1.0.0 milestone Dec 9, 2024
@tsuna-can-se tsuna-can-se added the 内部の改善 機能更新やドキュメント更新ではない改善 label Dec 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
target: Dressca サンプルアプリケーションDresscaに関係がある 内部の改善 機能更新やドキュメント更新ではない改善
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants