[ExternalDataSource()]
コード化されたUIオートメーションを実行しており、ドキュメント(csv、xml ...)を読み取り、データをいくつかの辞書に解析するために呼び出されるメソッド属性を定義しました。より良い洞察を得られるように、ここにコピーします。
[System.AttributeUsage(System.AttributeTargets.Method)]
public class ExternalDataSource : System.Attribute
{
public ExternalDataSource(string filename)
{
DirectoryInfo di = new DirectoryInfo(Assembly.GetExecutingAssembly().Location);
string file = Path.Combine(Path.GetDirectoryName(di.FullName), filename);
try
{
code
}
catch (Exception)
{
throw new UITestException("Cannot load data source document");
}
}
}
Assembly.GetExecutingAssembly().Location
その中で、TestResult/Out フォルダーにコピーされるファイルを取得するためにアクセスしようとします。この属性をアプリケーション全体で 1 つの TestMethod() だけに割り当てました。デバッグ中に、アプリケーションが属性の c'tor を 2 回入力することがわかりました。どちらも場所が異なります。1 つは bin/Debug フォルダーからのもので、もう 1 つは TestResults/Out フォルダーからのものです。2 つの質問:
- アプリケーションで 1 回しか呼び出していないのに、デバッガーがその属性を 2 回入力するのはなぜですか?
- 同じアセンブリの場所が変わるのはなぜですか?