Verwenden von NUnit mit PCL

8

Ich habe anscheinend alle möglichen Probleme damit, NUint mit einer PCL-Bibliothek zu spielen. Meine PCL-Bibliothek zielt auf .NET 4.5, Silverlight 4 und höher, Windows Phone 7.5, Windows Store, Mono für Android und MonoTouch ab (die letzten beiden mit Xamarin). Wenn ich jedoch versuche, NUnit über NuGet zum Projekt hinzuzufügen, sieht es so aus, als ob es hinzugefügt wird (Nunit.framework wird den Referenzen hinzugefügt), aber der NUnit-Namespace ist nicht verfügbar. Wenn ich versuche, ein using NUnit.Framework hinzuzufügen, unterstreicht Visual Studio das und wenn ich versuche zu bauen, bekomme ich einen Fehler über den NUnit Namespace kann nicht zusammen mit dieser Warnung gefunden werden:

%Vor%

Kann NUnit mit PCLs arbeiten? Die mvvm cross Tutorials scheinen es zu schaffen.

Ich habe versucht, ein separates Projekt zum Testen (eine normale Klassenbibliothek) zu erstellen, und ich kann NUnit hinzufügen, aber dann kann ich anscheinend keinen Verweis auf meine PCL-Bibliothek hinzufügen (die, die ich testen möchte) das hilft auch nicht.

Irgendwelche Ideen?

    
Matt Burland 14.06.2013, 15:27
quelle

1 Antwort

3

Dieses Argument hat Fehler, aber ich werde es trotzdem machen ...

Fahren Sie fort und schreiben Sie Ihre Komponententests in eine .net 4.5-Bibliothek, und führen Sie von dort aus einen Verweis auf Ihre PCL-Bibliothek durch. Das Ziel der Einheit testet es, um die Logik zu testen. Es stimmt zwar, dass einige Dinge für die verschiedenen PCL-Zielversionen unterschiedlich sein können (Methoden nicht implementiert usw.). Ich vermute jedoch, dass der Code auf 99% der Fälle getestet wird.

Außerdem sollten Sie, wenn Sie einen "echten" Test der Logik durchführen möchten, Ihre Komponententests auf den Geräten ausführen lassen, die Sie testen möchten ... und dann auf jeder Version des Betriebssystems ... und möglicherweise anderen Geräten mit verschiedenen CPUs usw. Wie weit willst du gehen?

Sie haben erwähnt, dass Sie keine Referenz zu Ihrem PCL aus der "normalen" Testbibliothek hinzufügen können ... welche Art von Fehler erhalten Sie? Ich habe diesen Ansatz verwendet, um meine PCL-Logik zu testen, und es funktioniert wie ein Zauber, vielleicht ist es nicht perfekt, aber für die 1% der Fälle, wo Dinge auf dem Gerät anders sind und die Dinge scheitern ... Ich habe eine Ausnahme Kabelbaum, der protokolliert zu einem Server  : -)

    
wallismark 28.05.2014 12:03
quelle