Aquí es mi guía definitiva para las pruebas unitarias en Silverlight 5. Esto guiará a todos los puntos que tiene que hacer, si no tiene ni idea, por dónde empezar. Esta guía trata de probar dentro de su proyecto. Va a no necesita un 2nd odr 3rd proyecto de Silverlight a la prueba unitaria.
0.) Cierre su proyecto de Silverlight.
1.) Descargue el kit de herramientas de Silverlight 5 here e instálelo.
2.) Abra el Explorador de Windows, vaya a C: y después de la búsqueda de estos dos archivos:
Microsoft.Silverlight.Testing.dll
Microsoft.VisualStudio.QualityTools. UnitTesting.Silverlight.dll
Si no los encuentra, algo anda mal.
3.) Registre estas dos DLL en el GAC. Para eso haga lo siguiente:
Abra la consola de Visual Studio como Administrador. Copie cada una de las instrucciones y ejecútelas en la consola:
gacutil/i "C: \ Archivos de programa \ Microsoft SDKs \ Silverlight \ v5.0 \ Toolkit \ dec11 \ Testing \ Microsoft.Silverlight.Testing.DLL"
gacutil/i "C: \ Archivos de programa \ Microsoft SDKs \ Silverlight \ v5.0 \ Toolkit \ dec11 \ Prueba \ Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight.dll"
por favor, tenga en cuenta, que las rutas de acceso a los archivos DLL podrían ser diferentes en su equipo. Sólo tienes que escribir la ruta correcta para su máquina.
4. abrir el proyecto Silverlight y se suman los dos archivos DLL desde arriba como una referencia al proyecto de Silverlight No a su proyecto web.
5. Agregue la siguiente clase a su proyecto. No importa dónde lo pongas. Tengo una carpeta adicional para mis pruebas, pero no importa.
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. Hit F6, tratar de compilar. Todo debería estar bien en este punto.
7. Busque el archivo "App.xaml.cs" en su proyecto. Dentro de este archivo encontrará la siguiente declaración. Por supuesto, "nueva Gui.MainPage();" será diferente en tu proyecto Solo busca RootVisual.
this.RootVisual = new Gui.MainPage();
Reemplace esta declaración con el siguiente bloque de código.
#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
Si ahora se añade la siguiente rutina a su clase App.xaml.cs: F6
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. Hit para comprobar si todo está bien.
9. Pulse F5 para ver si todavía puede depurar normalmente. Presiona Ctrl + F5 para iniciar la prueba unitaria.
10. ¡Ya ha terminado! Ahora puede probar la unidad en Silverlight 5.
Tenga en cuenta que las dos DLL del kit de herramientas todavía están en modo "experimental". No hay soporte oficial También tenga en cuenta que se trata de ejecutar las pruebas dentro de su proyecto. Ahora incluso podría ejecutar estas pruebas en una máquina de clientes en modo de lanzamiento. Si quieres hacer eso, tienes que cambiar las instrucciones #de DEBUG, pero creo que ya ves de qué se trata.
Por supuesto, puede cambiar este enfoque a la prueba de unidad en un proyecto adicional.
Happy Coding.
PISTA: Si tiene problemas con System.Core.dll Después de registrar los dos archivos DLL, sólo tiene que utilizar para registrar el gacutil System.Core.dll nuevo.De esta manera:
gacutil/i "C: \ Archivos de programa \ Referencia Asambleas \ Microsoft \ Framework \ Silverlight \ v5.0 \ System.Core.dll"
Hola Página, Eso fue lo primero que pensé, pero eso parecía ser más un control personalizado, mientras que yo estoy más buscando un solo ejemplo de nivel de aplicación. Cheers, Nath – NikolaiDante