Я пишу код для 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. Я не заинтересован в отладке на предпосылке и в идеале предпочел бы не хранить результаты в сделанных на заказ объектах. Я знаю, что мог бы скрапбить страницу, но надеюсь, что есть какой-то способ сделать эквивалент вызова веб-службы. Или что у кого-то есть хорошая структура, которая просто делает все это (или я могу настроить).
РЕДАКТИРОВАТЬ: Похоже, я, вероятно, в конечном итоге спросит, есть ли у кого-нибудь хороший код WatiN против CRM Online дальше