Здесь - мое конкретное руководство по модульному тестированию в Silverlight 5 . Это поможет вам разобраться во всех моментах, если вы не знаете, с чего начать. Это руководство о тестировании внутри вашего проекта. Вам не понадобится 2-й проект 3-го проекта Silverlight для модульного тестирования.
0.) Закройте проект Silverlight.
1.) Загрузите набор инструментов Silverlight 5 здесь и установите его.
2.) Откройте проводник Windows, перейдите в C: и найдите следующие два файла:
Microsoft.Silverlight.Testing.dll
Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight.dll
Если вы их не найдете, значит что-то не так.
3.) Зарегистрируйте эти две библиотеки DLL в GAC. Для этого сделайте следующее:
Откройте консоль Visual Studio как Администратор . Скопируйте каждое из утверждений и выполните их в консоли:
gacutil / i "C: \ Program Files \ Microsoft SDK \ Silverlight \ v5.0 \ Toolkit \ dec11 \ Testing \ Microsoft.Silverlight.Testing.dll"
gacutil / i "C: \ Program Files \ Microsoft SDK \ Silverlight \ v5.0 \ Toolkit \ dec11 \ Testing \ Microsoft.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. Найдите файл "App.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
Теперь вы добавляете следующую подпрограмму в ваш класс App.xaml.cs:
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.
Имейте в виду, что две библиотеки DLL из набора инструментов все еще находятся в «экспериментальном» режиме. Официальной поддержки нет. Также имейте в виду, что это примерно то же самое, что запуск тестов внутри вашего проекта. Теперь вы можете даже запустить этот тест на клиентском компьютере в режиме выпуска. Если вы хотите сделать это, вы должны изменить #if заявления DEBUG, но я думаю, вы понимаете, о чем идет речь.
Конечно, вы можете изменить этот подход для модульного тестирования в дополнительном проекте.
Счастливое кодирование.
СОВЕТ: Если после регистрации двух DLL у вас возникли проблемы с System.Core.dll, просто используйте gacutil для регистрации System.Core.dll снова. Как это:
gacutil / i "C: \ Program Files \ Справочные сборки \ Microsoft \ Framework \ Silverlight \ v5.0 \ System.Core.dll"