Блок Silverlight Для Тестирования

Я использую Silverlight UnitTest framerwork есть ли у кого-нибудь хороший пример, как тестировать приложение с ним? Я использую его довольно успешно для модульного тестирования библиотеки классов Silverlight.

любые указатели и ссылки будут очень признательны.

спасибо, Натх

4 ответов


Nath, Silverlight Control Toolkit использует его. Почему бы не взглянуть на модульные тесты?

http://www.codeplex.com/silverlight


Я написал несколько сообщений в блоге о структуре модульного тестирования 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.