私はアセンブリを作成して使用するデモプロジェクトを持っています。私はまた、注入されたコードをデバッグすることができます。しかし、カバレッジ、分析、またはプロファイリングを実行すると、それは数えられますが、私はそれを測定したいと思います。動的に生成されるコードのコードカバレッジ、分析、プロファイリング
コード:
CSharpCodeProvider codeProvider = new CSharpCodeProvider();
ICodeCompiler icc = codeProvider.CreateCompiler();
CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = false;
parameters.GenerateInMemory = false; // debug enabled
parameters.OutputAssembly = "DynamicCode.dll"; // if specified creates the DLL
parameters.IncludeDebugInformation = true;
CompilerResults results = icc.CompileAssemblyFromFile(parameters, "InjectedCode.cs.txt");
私は、生成されたILコードをチェックするためにDLLを作成します。私はVSでコードをデバッグすることができます。しかし、私がカバレッジを実行すると、生成されたアセンブリは単にTEMPディレクトリを使用する場合、または上記のようにDLLを出力するとNO FILEがカバレッジに含まれます(したがってメインアセンブリでさえも)。
プロファイリングを実行すると、私は呼び出し(リフレクション)しか見ることができませんが、生成されたコードについては何も表示されません。私が分析(私は注射されたコードにいくつかの誤り、例えば、使用されていない地元の人や、すべての人のためのofcの分析がある)、注入されたコードからの問題は報告されません。注入コード:
namespace CodeInjection
{
public static class DynConcatenateString
{
public static string Concatenate(string s1, string s2){
// System.Diagnostics.Debugger.Break(); // break here for debugger and also test comment output
int a = 1+2+3+4+5; // complicated math
int b = a+2;
int c = 0;
return s1 + " !"+b+"! " + s2;
}
}
}
私は、生成されたコード(主にカバレッジ)に対してカバレッジ、プロファイリングおよび分析を使用したいと考えています。
またスキップしました(コードカバレッジをスキップした後の最初の試行でした)。また、ジェットベインカバーや他のツールミス。今度はトピックの中でさらに深く進んでいきます。次週の結果が期待されますので、ここでお送りします。私の質問は、それが有用かどうかを評価してください。 – cseppento