2011-01-15 5 views
1

ich tue Unit-Tests für Silverlight 4 in Visual Studio 2010.Fehler beim Zugriff auf Projektressource von Silverlight Testprojekt

Das Problem ist, ich nicht in der Lage bin Ressourcen zu Testprojekt zu verwenden, hinzugefügt.

Während der Testlauf, wenn ich versuche, eine resouce wie diese zuzugreifen:

[TestClass] 
public class Class1 
{ 
    [TestMethod] 
    public void Test1() 
    { 
     // here I have an exception 
     Debug.WriteLine(Properties.Resources.String1); 

, erhalte ich eine Ausnahme:

System.TypeLoadException: Unable to load type "System.Runtime.Versioning.TargetFrameworkAttribute" from assembly "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 

Stapelüberwachung ist

System.ModuleHandle.ResolveMethod(Int32 methodToken, RuntimeTypeHandle* typeInstArgs, Int32 typeInstCount, RuntimeTypeHandle* methodInstArgs, Int32 methodInstCount) 
System.ModuleHandle.ResolveMethodHandle(Int32 methodToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext) 
System.Reflection.CustomAttributeData..ctor(Module scope, CustomAttributeRecord caRecord) 
System.Reflection.CustomAttributeData.GetCustomAttributes(Module module, Int32 tkTarget) 
System.Reflection.CustomAttributeData.GetCustomAttributes(Assembly target) 
System.Resources.ResourceManager.GetNeutralResourcesLanguage(Assembly a, UltimateResourceFallbackLocation& fallbackLocation) 
System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents) 
System.Resources.ResourceManager.GetString(String name, CultureInfo culture) 
SilverlightClassLibraryTestProject1.Properties.Resources.get_String1() in D:\Work\Temp\SilverlightClassLibraryTestProject1\SilverlightClassLibraryTestProject1\Properties\Resources.Designer.cs: line 68 
SilverlightClassLibraryTestProject1.Class1.Test1() in D:\Work\Temp\SilverlightClassLibraryTestProject1\SilverlightClassLibraryTestProject1\Class1.cs: line 13 

Was kann ich Ein von Visual Studio erstelltes Silverlight-Testprojekt enthält einen Verweis auf Microsoft.VisualStudio.QualityTools.UnitTestFramework w Das ist eine .net Framework 4.0 Assembly, keine Silverlight.

Meine Frage ist: ist es möglich, Ressourcen in Silverlight Test-Projekte mit Hilfe von ResourceManager jetzt zu verwenden? Wenn ja, was sollte dann getan werden? Hier

ist ein Beispiel test project

Antwort

0

Wenn ich ein Silverlight-Test-Projekt erstelle ich nicht, dass die Referenz. Darüber hinaus verfügen Silverlight-Projekte in den Projekteigenschaften nicht über die Registerkarte Ressourcen, die Ihrem Projekt ähnelt (ein vollständiges .NET-Projekt stellt die Projektressourcen unter den Namensraum Properties.Resources).

Die bereitgestellte ZIP-Datei ist beschädigt, daher konnte ich das Projekt nicht direkt betrachten, obwohl ich ziemlich sicher bin, dass das von Ihnen erstellte Testprojekt ein Full .NET-Testprojekt anstelle eines Silverlight-Testprojekts ist. Sie müssen sicherstellen, dass Sie ein Silverlight-Testprojekt verwenden. Sie können dann eine Ressourcendatei über Neues Element hinzufügen -> Allgemein -> Ressourcendatei hinzufügen.

Edit:

Ihr Projekt ist referecing einen vollständigen .NET-Framework Test DLL:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 

Sie müssen Referenz:

C:\Program Files (x86)\MSBuild\..\Microsoft SDKs\Silverlight\v4.0\Toolkit\Apr10\Testing\Microsoft.Silverlight.Testing.dll 

C:\Program Files (x86)\MSBuild\..\Microsoft SDKs\Silverlight\v4.0\Toolkit\Apr10\Testing\Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight.dll 

Beachten Sie, dass dieser DLL im Silverlight Toolkit gefunden . Außerdem sieht es so aus, als hätten Sie eine Silverlight-Klassenbibliothek erstellt - die Vorlage, die Sie verwenden sollten, heißt "Silverlight Unit Test Application". Dies liegt daran, dass Silverlight-Tests derzeit erfordern, dass Sie sie im Browser ausführen und daher eine "Application" -Klasse benötigen. Sie können die normale Silverlight-Anwendungsvorlage verwenden, obwohl Sie auf die zuvor erwähnten DLLs verweisen und die folgende Änderung im Anwendungscode vornehmen müssen:

+0

Ich habe ein Testprojekt an einen anderen Speicherort hochgeladen. –

+0

Ich erstelle ein Silverlight-Klassenbibliothek-Testprojekt, und auf die Assembly Microsoft.VisualStudio.QualityTools.UnitTestFramework wird verwiesen. Es enthält TestClassAttribute und TestMethodAttribute. Wenn Sie Microsoft.VisualStudio.QualityTools.UnitTestFramework in Ihren Silverlight Test-Projekten nicht haben, dann können Sie [TestClass] usw. nicht verwenden. –

+0

Und bitte beachten Sie, dass ich eine Ressourcendatei zum Projekt hinzugefügt hatte und das Problem ist I Ich bin nicht in der Lage, diese zusätzliche Ressource während des Testlaufs zu verwenden. –

Verwandte Themen