今日も GitHub というか Visual Studio の話です。
asabon/PFD_Editor (github.com)
でちょっとしたアプリを公開しています。
今はこのリポジトリを使って「開発環境の整備」をやってます。
GitHub Actions を使って、プルリク発行&更新時に以下の処理を自動実行したいです。
- UnitTest が自動実行されること
- 実行された UnitTest の結果がわかること
- UnitTest 実行時のコードカバレッジが自動的に測定されること
- 測定結果がプルリクのコメントに記載されること
で、とりあえずここまではできるようになりました。
現在オープンなプルリクはこれ。
まぁ、やりたいことはできているので、あとは UnitTest を追記していって、
カバレッジを上げていくことが目標です。
なんですが、実際にテストと追加していくとおかしなことに気づきました。
UnitTest プロジェクトにおいて、
- テスト対象のクラスごとにテストコードのファイルを分離したい
と考えているのですが、
- テストコードのファイルを追加しても、GitHub Actions の UnitTest に反映しない
という症状に気づきました。
ローカルで実施している UnitTest では追加したファイルは認識されており、
同じプロジェクトファイルが GitHub に commit, push されているのに、
一体これはどういう状態なんだろう?と。
Visual Studio のソリューションファイル、プロジェクトファイルの構成はこんな感じ。
+ PFD_Editor/
+ PFD_Editor.sln
+ PFD_Editor/
+ PFD_Editor.csproj
+ UnitTestProject/
+ UnitTestProject.csproj
で、 Visual Studio の GUI から UnitTestProject にテストコードのファイルを追加すると、
GUI 上ではファイルは追加され、実行したUnitTestではテストが検出され実行されているのに、
UnitTestProject.csproj をテキストエディタで開いてみると、どうも、
- UnitTestProject.csproj に追加したファイルが登録されていない
ということに気づきました。
このファイルに登録されていなかったらローカルでも認識しなさそうな感じなのに、
なんで「ローカルでは認識する」のに、「GitHub Actionsでは認識されない」のか。
そもそも GUI での操作が何で UnitTestProject.csproj に反映されないのか?不明です。
とりあえず、UnitTestProject.csproj をテキストエディタで編集して、ファイルを登録したら
GitHub Actions の UnitTest 実行時に、追加したファイルが認識されるようになったので、
「解決した」と言えなくもないですが、なんだか正しい対応ではないような気がしていて、
気持ち悪い感じです。
同じような症状の方とか、詳しい方がいたら教えてほしいです・・・。