3

自動生成Unit Testsを使用してVisual Studio 2010をクラッシュさせる驚くほど簡単な方法を見つけました。

これが私が作った方法です: File=> New Project=> Class Library [.NET Framework 4] .
これは、プログラムの完全なソース コードです (15 行のC#コード)。

namespace UnitTestsCrash
{
    class ClassA<T>
    {
        private T a;
    }

    class ClassB : ClassA<ClassB>
    {
        private void FooA()
        {
            return;
        }
    }
}

Build it本体Right Mouse Button内をクリックするより=> => => => . その結果、Visual Studioがクラッシュします(スクリーンショット)。ClassBCreate Unit Tests...OKCreateYes

より複雑なソリューションでこの奇妙なクラッシュを発見しました。この問題をより大きなプロジェクトから抽出し、上記のサンプルに単純化しました。それがVisual Studio 2010
のせいなのか、それとも私のせいなのか、よくわかりません。それが私のせいであるかどうかを確認して説明してください。

同様の方法で継承する大きなクラスをテストする必要がありClassBますが、自動化された方法では実行できません。

4

1 に答える 1

1

プライベート アクセサーには問題があります。実際、あなたのケースは、アクセサーが純粋な悪であることをもう一度証明しました。テストケースが変更されるたびに、参照されているすべてのプロジェクトを強制的に再コンパイルします。また、この記事http://blogs.msdn.com/b/vstsqualitytools/archive/2010/01/18/publicize-and-code-generation-for-visual-studio-2010.aspxによると、VSチームのテストは停止しましたVS2010 ではアクセサーがサポートされているため、アクセサーに問題があるのは当然のことです。リフレクションを使おう!

VS2012 もクラッシュします。そのため、アクセサーは何も変更されていません。VS2012 ではアクセサーが非推奨になっています。

于 2012-11-07T07:23:27.193 に答える