3

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 に配線されたプラグイン アクションによって、このコードをトリガーします。

  1. プラグインをアップロードする
  2. 連絡先を作成する
  3. ヒットセーブ
  4. 例外データ ファイルをダウンロードする

より良い方法が必要ですが、テストを介してプラグインコードをトリガーする (および例外出力を取得する) ための参照がドキュメント、ブログ、またはフォーラム内で見つからないだけです。

プラグインでメソッドを呼び出して、完全なスタック トレースとログ出力を含む結果を xUnit テストのコンテキスト内で取得できるようにしたいと考えています。

それは可能ですか?他の人も同様のことをしましたか? CRM 2011 のすべての開発者が、マウス ループに巻き込まれているわけではありません。


NB オンプレミスでのデバッグには興味がありません。理想的には、結果を特注のエンティティに保存する必要はありません。ページをスクリーンスクレイピングできることはわかっていますが、Web サービスの呼び出しと同等のことができる方法があることを願っています。または、誰かがそれをすべて簡単に実行できる優れたフレームワークを持っている (または私が微調整できる)。

編集: 次はおそらく誰かが CRM Online に対する素敵な WatiN コードを持っているかどうかを尋ねることになるようです

4

1 に答える 1

2

あなたが達成しようとしているすべてを理解しているかどうかはわかりませんが、 codePlexのCRM 2011 Plugin Testing Toolsを既に見たというコメントに基づいて賭けています. プロジェクトの説明とリリース ノートの両方に、MS の従業員がそのプロジェクトの開発を支援したことが記載されているため、求めているものに対する MS のサポートが限られていることがすぐにわかります。

Jon C が述べたように、Josh Painterは別の質問への回答で、使用できる組み込みのプラグイン デバッガーがあり、クライアント マシンで実行されると述べました。

また、Erik Pool がブログIPluginExecutionContextにプラグインの手動インスタンス化に関する素晴らしいエントリを投稿しました。

これら 3 つの解決策のいずれかが機能することを願っています。

于 2011-12-14T20:19:38.027 に答える