0

過去に同様の質問をしたことがありますが、このことは脇に置き、問題に戻りました。動的に作成された dll で単体テストを実行するために達成しようとしていること。

QAエンジニアがスクリプトをアプリケーションに挿入するためのAPIがいくつかあります。QA エンジニアは、アプリケーション エディターでいくつかのコードを記述し、コードはランタイムでコンパイルされ、アセンブリとしてディスクに保存されます。

この動的に作成されたアセンブリで一連のテストを実行できるようにしたいと考えています。QAチームに、いくつかの基本クラスから継承し、いくつかのメソッドをオーバーライドするように強制しています。これらはテストしたいメソッドです...

これをどのように実装しますか?どんなアイデアでも役に立ちます。ありがとう。

4

2 に答える 2

2

動的アセンブリ内の型を調べて、基本クラスから派生した具体的な型を見つける必要があります。それらがすべてパラメーターなしのコンストラクターを持っていると仮定すると、次のようなことができます。

Assembly dynamicAssembly = //generated
var derivedInstances = dynamicAssembly.GetTypes()
    .Where(t => !t.IsAbstract && t.IsSubclassOf(typeof(BaseClass)))
    .Select(t => (BaseClass)Activator.CreateInstance(t));

foreach(BaseClass bc in derivedInstances)
{
    //run tests
}
于 2013-04-18T12:45:57.620 に答える