Блок Silverlight Для Тестирования
Я использую Silverlight UnitTest framerwork есть ли у кого-нибудь хороший пример, как тестировать приложение с ним? Я использую его довольно успешно для модульного тестирования библиотеки классов Silverlight.
любые указатели и ссылки будут очень признательны.
спасибо, Натх
4 ответов
Я написал несколько сообщений в блоге о структуре модульного тестирования Silverlight. Первый из них описывает, как протестировать асинхронный код с помощью асинхронного атрибута и некоторых более продвинутых функций платформы. Сообщение можно найти по адресуhttp://jonas.follesoe.no/UnitTestingAsynchronousSilverlightCode.aspx
второй пост посвящен организации ваших тестов с использованием тега-атрибута. Это позволяет иметь модуль/интеграция/производительность/UI тесты в один и тот же набор тестов, но выполняется только одна определенная категория за раз. В блоге можно найти на http://jonas.follesoe.no/EfficientTestingInSilverlight2UsingTags.aspx
здесь мое определенное руководство по модульному тестированию в Silverlight 5. Это поможет во всех точках, которые вы должны сделать, если у вас нет подсказки, с чего начать. Это руководство о тестировании внутри ваш проект. Вы не нужен 2-й проект odr 3rd silverlight для модульного тестирования.
0.) закройте проект Silverlight.
1.) загрузить набор инструментов Silverlight 5 здесь и установить его.
2.) откройте Проводник Windows, перейдите к C: и затем найдите эти два файла:
Microsoft.технология Silverlight.Тестирование.dll файлы
Microsoft.VisualStudio.QualityTools.UnitTesting.технология Silverlight.dll файлы
если вы не найдете их, что-то не так.
3.) зарегистрируйте эти две библиотеки DLL в GAC. Для этого сделайте follwing:
Откройте консоль Visual Studio как администратор. Скопируйте каждый из операторов и выполните их в консоли:
gacutil /я "C:\Program файлы\Microsoft пакет SDK\\Silverlight в версии V5.0\инструментарий\11 дек\тестирование\Майкрософт.технология Silverlight.Тестирование.DLL-файл"
gacutil / i "C:\Program файлы\Microsoft Пакет SDK\\Silverlight в версии V5.0\инструментарий\11 дек\тестирование\Майкрософт.VisualStudio.QualityTools.UnitTesting.технология Silverlight.DLL-файл"
пожалуйста, имейте в виду, что пути к DLL могут быть разными на вашем компьютере. Просто введите правильный путь для вашей машины.
4. откройте проект Silverlight и добавьте две библиотеки DLL сверху в качестве ссылки на проект Silverlight. не для вашего веб-проекта.
5. Добавьте в проект следующий класс. Не имеет значения, куда вы его положили. У меня есть дополнительная папка для моих тестов, но это не имеет значения.
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Silverlight.Testing;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Test
{
[TestClass]
public class Test_Svc_Login
{
[TestMethod]
public void Always_True()
{
Assert.IsTrue(true);
}
[TestMethod]
public void Always_False()
{
Assert.IsTrue(false);
}
[TestMethod]
public void Even_MoreAlways_False()
{
Assert.IsTrue(false);
}
}
}
6. нажмите F6, попробуйте скомпилировать. На данный момент все должно быть в порядке.
7. находим файл "приложение.код XAML.cs " в вашем проекте. Внутри этого файла вы найдете следующую инструкцию. Конечно " новый Gui.Файл MainPage();" будет отличаться в вашем проекте. Просто найдите RootVisual.
this.RootVisual = new Gui.MainPage();
замените этот оператор следующим блоком кода.
#if DEBUG
if (System.Diagnostics.Debugger.IsAttached)
{
//You hit F5 ONLY
this.RootVisual = new Gui.MainPage();
}
else
{
//You hit CTRL + F5
RunUnitTests();
}
#else
//You are in Release Mode. You hit whatever you want.
this.RootVisual = new Gui.MainPage();
#endif
теперь вы добавляете следующую процедуру в свое приложение.код XAML.класс ЗС:
private void RunUnitTests()
{
#if DEBUG
//You hit CTRL + F5
var settings = new UnitTestSettings();
settings.TestHarness = new UnitTestHarness();
settings.StartRunImmediately = true;
settings.TestAssemblies.Add(Assembly.GetExecutingAssembly());
this.RootVisual = UnitTestSystem.CreateTestPage(settings);
#endif
}
8. нажмите F6, чтобы проверить, все ли в порядке.
9. нажмите F5, чтобы увидеть, если вы все еще можете отлаживать нормально. нажмите Ctrl+F5, чтобы начать модульный тест.
10. Вы молодец! Теперь вы можете модульный тест в Silverlight 5.
пожалуйста, имейте в виду, что две библиотеки из инструментария все еще находятся в "экспериментальном" режиме. Официальной поддержки нет. также имейте в виду, что approch-это запуск тестов внутри вашего проекта. Теперь вы даже можете запустить этот тест на клиентской машине в режиме выпуска. Если вы хотите это сделать, вам нужно изменить инструкции #if DEBUG, но я думаю, вы видите, что все это значит.
конечно, вы можете изменить этот подход к модульному тесту в дополнительный проект.
Удачи В Кодировании.
подсказка: если у вас есть проблемы с системой.Ядро.dll после регистрации двух библиотек DLL просто используйте gacutil для регистрации системы.Ядро.снова dll. Вот так:
gacutil / i "C:\Program файлы\справочные сборки\Microsoft\Framework\Silverlight\v5.0\система.Ядро.DLL-файл"
вы также должны попытаться использовать SilverUnit реальные модульное тестирование Silverlight, это действительно простой в использовании фреймворк, который также защищает вас от Тонкостей обработки событий Silverlight.