我正在为 Dynamics CRM 编写一些代码Online 2011.
我想要运行一组集成测试inCRM Online 并能够检查:
Under 的控制我本地机器上的测试运行程序。
现在,我正在做:
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 的插件操作触发此代码:
- 上传插件
- 创建联系人
- hit save
- 下载异常数据文件
必须有更好的方法,但我根本无法在文档、博客或论坛中找到任何参考来通过测试触发插件代码(并获取异常输出)。
我希望能够调用插件中的方法,然后将包括完整堆栈跟踪和日志输出在内的结果返回到 xUnit 测试的上下文中。
那可能吗?其他人也做过类似的事情吗?当然,并非所有 CRM 2011 开发人员都陷入了鼠标环的困境中?
注意,我对本地调试不感兴趣,并且理想情况下不希望将结果存储到定制实体中。我知道我可以对页面进行屏幕抓取,但我希望有某种方法可以进行相当于网络服务调用的操作。或者有人有一个很好的框架,可以简单地完成这一切(或者我可以调整)。
编辑:看来我最终可能会问是否有人有一些针对 CRM Online 的不错的 WatiN 代码