Hier ist meine definitive Anleitung zum Komponententest in Silverlight 5. Dies wird zu allen Punkten führen, die Sie tun müssen, wenn Sie keine Ahnung haben, wo Sie anfangen sollen. In diesem Handbuch geht es darum, innerhalb Ihres Projekts zu testen. Sie werden nicht benötigen ein 2. odr 3. Silverlight-Projekt zum Komponententest.
0.) Schließen Sie Ihr Silverlight-Projekt.
1.) Laden Sie das Silverlight 5 Toolkit here herunter und installieren Sie es.
2.) Öffnen Sie Ihren Windows Explorer zu C gehen: und dann für diese beiden Dateien suchen:
Microsoft.Silverlight.Testing.dll
Microsoft.VisualStudio.QualityTools. UnitTesting.Silverlight.dll
Wenn Sie sie nicht finden, stimmt etwas nicht.
3.) Registrieren Sie diese zwei DLLs im GAC. Gehen Sie dazu folgendermaßen vor:
Öffnen Sie die Visual Studio-Konsole als Administrator. Kopieren Sie alle Anweisungen und führen Sie sie in der Konsole aus:
gacutil/i "C: \ Programme \ Microsoft SDKs \ Silverlight \ v5.0 \ Toolkit \ dec11 \ Testing \ Microsoft.Silverlight.Testing.dll“
gacutil/i "C: \ Programme \ Microsoft SDKs \ Silverlight \ v5.0 \ Toolkit \ DEC11 \ Testing \ Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight.dll"
beachten Sie bitte, dass die Pfade zu den DLLs auf Ihrem Computer unterschiedlich sein können. Nur den richtigen Pfad für Ihren Maschinentyp.
4. die beiden DLLs von oben wie ein Öffnen Sie die Silverlight-Projekt und fügen Verweis auf Silverlight-Projekt Nicht zu Ihrem Webprojekt.
5. Fügen Sie Ihrem Projekt die folgende Klasse hinzu. Es spielt keine Rolle, wo Sie es hinstellen. Ich habe einen extra Ordner für meine Tests, aber spielt keine Rolle.
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, versuchen zu kompilieren. Alles sollte an diesem Punkt in Ordnung sein.
7. Suchen Sie die Datei "App.xaml.cs" in Ihrem Projekt. In dieser Datei finden Sie die folgende Anweisung. Natürlich "neue Gui.MainPage();" wird in Ihrem Projekt anders sein. Suchen Sie einfach nach RootVisual.
this.RootVisual = new Gui.MainPage();
Sie ersetzen diese Anweisung durch den folgenden Codeblock.
#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
Nun fügen Sie die folgende Routine zu Ihrer App.xaml.cs Klasse:
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 F6 zu überprüfen, ob alles in Ordnung ist.
9. Hit F5 zu sehen, wenn Sie noch normal debuggen können. Drücken Sie Strg + F5, um den Komponententest zu starten.
10. Sie sind fertig! Jetzt können Sie Unit-Test in Silverlight 5.
Bitte beachten Sie, dass die beiden DLLs aus dem Toolkit noch im "experimentellen" Modus sind. Es gibt keine offizielle Unterstützung. Denken Sie auch daran, dass es darum geht, die Tests in Ihrem Projekt auszuführen. Jetzt könnten Sie diese Tests sogar auf einem Client-Rechner im Freigabemodus ausführen. Wenn Sie das tun wollen, müssen Sie #if DEBUG Statements ändern, aber ich denke, Sie sehen, worum es geht.
Natürlich können Sie diesen Ansatz in einem zusätzlichen Projekt in Komponententest ändern.
Glückliche Kodierung.
TIPP: Wenn Sie Probleme mit System.Core.dll nach der Registrierung der beiden DLLs haben, nur gacutil verwenden, um die System.Core.dll wieder zu registrieren.Wie folgt aus:
gacutil/i "C: \ Programme \ Reference Assemblies \ Microsoft \ Framework \ Silverlight \ v5.0 \ System.Core.dll"
Hallo Seite, Das war mein erster Gedanke, aber das schien eher eine benutzerdefinierte Steuerung zu sein, wo ich eher nach einem einzigen Anwendungslevel-Beispiel suche. Prost, Nath – NikolaiDante