1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[MSTest]テストエクスプローラーでユニットテストが見つからない場合の対処法

Posted at

MSTestを使ってユニットテストを書いた際にテストエクスプローラーに表示されない問題が多発していましたが、私の場合は以下の方法で見つかるようになりました。

結論

TestClass属性を付けたテストクラスのアクセス修飾子をpublicにしましょう。

[TestClass]
public class SampleTests
{
    [TestMethod]
    public void SampleTest(){
        Assert.IsTrue(true);
    }
}

経緯

C#での開発をしているのですが、テスト用のプロジェクトを追加しています。
テスト対象のクラスが増えるたびにテスト用のプロジェクトにも以下のようにソリューションエクスプローラーから新しいクラスを追加していました。

image.png

しかし、この方法でクラスを追加した場合、テンプレートで作成されるクラスはアクセス修飾子がprivateになっています(※実際にはprivatepublicも記述されていないですがそのような場合はprivateとして認識されます)。
privateなクラスはテストエクスプローラーから見えないようなので、このクラスのアクセス修飾子をpublicにする必要があります。

単体テスト用クラスの追加方法

と、ここまで書いて気づいたんですが、単体テスト用クラスの追加メニューありますね。。。

image.png

これを使えば初期状態でpublicなクラスが生成されました
めでたしめでたし

その他の対処法たち

テストエクスプローラーからテストが見えない問題はいろいろな原因があるようです。
いくつか見つけたその他の対処法を載せておきます。(その他の症状・対処法をご存知の方は教えてください)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?