Dynamics CRM Online 2011のコードを書いています。
CRM Online で一連の統合テストを実行して、以下を調べられるようにしたいと考えています。
- 一部のログ出力
- アサーションの失敗
ローカル マシンのテスト ランナーの制御下にある。
今、私はやっています:
var passes = new List<string>();
var fails = new List<Tuple<string,Exception>>();
foreach(Action<StringWriter> testAction in EnumTests())
{
var log = stringWriter();
try
{
testAction(log);
passes.Add(log.ToString());
}
catch(Exception e)
{
fails.Add(log.ToString(),e);
}
}
throw new Exception( "PASSES: " + string.Join("======", passes.ToArray())
+ "FAILS: " + string.Join("=======",fails.Select(f=>f.ToString()).ToArray());
Contact Create に配線されたプラグイン アクションによって、このコードをトリガーします。
- プラグインをアップロードする
- 連絡先を作成する
- ヒットセーブ
- 例外データ ファイルをダウンロードする
より良い方法が必要ですが、テストを介してプラグインコードをトリガーする (および例外出力を取得する) ための参照がドキュメント、ブログ、またはフォーラム内で見つからないだけです。
プラグインでメソッドを呼び出して、完全なスタック トレースとログ出力を含む結果を xUnit テストのコンテキスト内で取得できるようにしたいと考えています。
それは可能ですか?他の人も同様のことをしましたか? CRM 2011 のすべての開発者が、マウス ループに巻き込まれているわけではありません。
NB オンプレミスでのデバッグには興味がありません。理想的には、結果を特注のエンティティに保存する必要はありません。ページをスクリーンスクレイピングできることはわかっていますが、Web サービスの呼び出しと同等のことができる方法があることを願っています。または、誰かがそれをすべて簡単に実行できる優れたフレームワークを持っている (または私が微調整できる)。
編集: 次はおそらく誰かが CRM Online に対する素敵な WatiN コードを持っているかどうかを尋ねることになるようです