MSTestを使ってユニットテストを書いた際にテストエクスプローラーに表示されない問題が多発していましたが、私の場合は以下の方法で見つかるようになりました。
結論
TestClass
属性を付けたテストクラスのアクセス修飾子をpublic
にしましょう。
[TestClass]
public class SampleTests
{
[TestMethod]
public void SampleTest(){
Assert.IsTrue(true);
}
}
経緯
C#での開発をしているのですが、テスト用のプロジェクトを追加しています。
テスト対象のクラスが増えるたびにテスト用のプロジェクトにも以下のようにソリューションエクスプローラーから新しいクラスを追加していました。
しかし、この方法でクラスを追加した場合、テンプレートで作成されるクラスはアクセス修飾子がprivate
になっています(※実際にはprivate
もpublic
も記述されていないですがそのような場合はprivate
として認識されます)。
private
なクラスはテストエクスプローラーから見えないようなので、このクラスのアクセス修飾子をpublic
にする必要があります。
単体テスト用クラスの追加方法
と、ここまで書いて気づいたんですが、単体テスト用クラスの追加メニューありますね。。。
これを使えば初期状態でpublic
なクラスが生成されました
めでたしめでたし
その他の対処法たち
テストエクスプローラーからテストが見えない問題はいろいろな原因があるようです。
いくつか見つけたその他の対処法を載せておきます。(その他の症状・対処法をご存知の方は教えてください)