Mit MSTest, was ist der relative Pfadstamm der DeploymentItemAttribute.Was ist der relative Pfadstamm von DeploymentItemAttribute?
Antwort
Per der MSDN Seite ...
Relative Pfade sind relativ zum RelativePathRoot Einstellung in der Datei .testrunconfig gefunden.
Diese Einstellung ist standardmäßig das Lösungsverzeichnis. Also, wenn Sie diese Projektstruktur hat
SecretProject\
ComponentA\
ComponentA.Test\
Resources\
required.xml
ComponentA.Test.csproj
Tests.cs
SecretProject.sln
Und wollen Sie required.xml implementieren, können Sie eine DeploymentItemAttribute wie diese
[TestClass]
public class Tests
{
[TestMethod]
[DeploymentItem("ComponentA.Test\Resources\required.xml")]
public void Test()
{
}
}
erstellen gehen Es scheint, die Dateieigenschaften müssen auf 'Inhalt' und 'Kopie immer' oder 'Kopie wenn neuer' gesetzt werden. Es gibt erweiterte Beispiele für this MSDN page.
Um davon auszugehen, dass der RelativePathRoot-Standardwert das Verzeichnis ist, in dem sich Ihre Lösung befindet, war in meinem Fall nicht korrekt, und RelativePathRoot wurde auch nicht in meiner .testrunconfig-Datei definiert. Ich habe festgestellt, dass der RelativePathRoot-Standardwert das Verzeichnis/bin/debug für die Lösung ist.
Als ich von diesem Punkt zurückging, funktionierte meine Datei, die ich für den Komponententest bereitstellen wollte, einwandfrei.
Also werde ich meine Erfahrung hinzufügen.
Also, wenn Sie .testrunconfig-Datei verwenden, das wird trump (überschreiben), was ich sage unten.
Ich dachte, es gäbe ein paar Optionen.
Relativ zum aktuellen CSPROJ
Bezogen auf die SLN
relativ zum aktuellen CS-Datei
Ich habe endlich mein Build-System arbeitet mit der "mit relativ zu der aktuellen .cs-Datei "Ansatz.
In meinem Beispiel brauchte ich ein Xsd aus einem anderen Projekt, das für meinen UnitTest kopiert wurde. Aber die Art der Datei spielt keine Rolle.
Beispiel:
c: \ myfolder \ MyXsdProject \ XSDs \ MyCoolXsd.xsd
c: \ myfolder \ MyCsharpUnitTestProject \ MySubFolder1 \ MySubFolder2 \ MyUnitTestClass.
cs
namespace MyCsharpUnitTestProject.MySubFolder1.MySubFolder2
{
[TestClass]
[DeploymentItem(@"..\..\..\MyXsdProject\XSDs\MyCoolXsd.xsd")]
public class MyUnitTestClass
{
}
}
- 1. Was ist der Pfadursprung für relative Pfade in Szene # getStylesheets()?
- 2. Was ist die relative Geschwindigkeit von Gleitkommaaddieren vs. Gleitkomma multiplizieren
- 3. Was ist der Zweck von. * \\?
- 4. Was ist der Zweck von Membership.ValidateUser ist()
- 5. Der relative virtuelle Pfad 'x.resx' ist hier nicht erlaubt
- 6. Relative Gravitation
- 7. Der relative virtuelle Pfad ist hier nicht erlaubt
- 8. Wie kombinieren relative relative Pfade und Systemjs?
- 9. NSURL URLWithString: relativeToURL: ist Clipping relative URL
- 10. relative Position von pictureBox bei der Größenänderung beibehalten
- 11. Relative Dateipfade
- 12. Was ist der @ Operator?
- 13. Ist * {position: relative} eine schlechte Idee?
- 14. Was ist der Punkt von dbms_lob.createtemporary()?
- 15. Was ist der Zweck von PDB-Dateien?
- 16. Was ist der Leistungseinfluss von Leistungsindikatoren?
- 17. Was ist der Sinn von FILL_AND_STROKE?
- 18. Was ist der Zweck von layout.xml?
- 19. FluentNHibernate: Was ist der Effekt von AsSet()?
- 20. Was ist der Sinn von XPS?
- 21. Was ist der Zweck von $ _POST?
- 22. Was ist der Sinn von Python-Eizellen?
- 23. Was ist der Zweck von git-mv?
- 24. Was ist der Gültigkeitsbereich von XACT_ABORT?
- 25. Was ist der Sinn von Paketannotationen?
- 26. Was ist der Zweck von jquery.mobile.structure?
- 27. Was ist der Zweck von character_set_connection?
- 28. Was ist der Sinn von setArguments?
- 29. Was ist der Hauptzweck von openssls SSL_CTX_use_certificate_file?
- 30. Was ist der Zweck von JNDI
„Es scheint, dass die Dateieigenschaften müssen‚Inhalt‘zu setzen und‚Kopieren immer‘oder‚Kopieren, falls neuere‘.“ Du wärst überrascht, wie schwer es war, das zu finden ... – SouthShoreAK
@SouthShoreAK - Wo wurde es gefunden? –
@ScottLangham Es befindet sich in den Dateieigenschaften des Bereitstellungselements. Im 'Solution Explorer' müssen Sie die Datei markieren (in diesem Fall 'required.xml'), mit der rechten Maustaste darauf klicken und Eigenschaften auswählen. Du solltest es dort sehen. – dpimente