Visual Studio 2019で単体テストを作成できない

投稿者: Anonymous

Visual Studio 2019において、下記のようなクラスのメソッドについて単体テストを作成できない。

画像の説明をここに入力

このプロジェクトは、単体テスト用のプロジェクトではなく、.NET Core3.1のWinFormsのプロジェクト(non-test project)かつpublicなクラスのpublicなメソッドにもかかわらず、上記のエラーが出て単体テストを生成できません。
生成するにはどのようにすればよろしいでしょうか。

追記:
プロジェクトの参照先のプロジェクトが(意図せず)単体テストプロジェクトを参照していたため、参照元のプロジェクトも単体テストプロジェクトと認識されているため、単体テストを作成できませんでした。無事解決いたしました。

解決

私の環境(Windows10 64bit Visual Studio Professional 2019)では再現せず、問題なくテストが実行できてしまいます。
しかし本家SOの質問のコメント上で、同様に回答者の環境では再現しないやり取りがされていました。
こちらはVS2015ですが、結局質問者は「ソリューションを作り直してコードを貼り付けたらエラーが解消した」とのことでした。
コメント末尾で類似のエラーが起こった人から「テストフレームワークの参照を外したら直った」という報告もありました。

以下は上記の回答と外部サイトから得られた一般的な対処法とTipsです。
@matarimocha さんの役には立たないとは思います(ごめんなさい)が、検索してここにたどり着いた方向けの確認事項として追記します。

  • クラスとメソッドはpublicですか?
  • プロパティ単体クラスのテストはできません。
namespace WindowsFormsApp1
{
    //publicじゃない
    class Class1
    {
        public void Test() { }
    }
    public class Class2
    {
        //メソッドがない
        public string HogeProperty { get { return "hoge"; } }
        public int Fuga;
    }
}

なお”Create Unit Tests is supported only on a non-test project and within a public class or public method.”のエラーメッセージについて、
日本語環境では「単体テストの作成は、パブリック クラスかパブリック メソッド内の非テスト プロジェクトでのみサポートされます。」というエラーメッセージになります。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *