Wo sollte ich Code platzieren, der nur einmal ausgeführt werden sollte (und nicht einmal pro Klasse)? Ein Beispiel hierfür wäre eine Anweisung, die die DB-Verbindungszeichenfolge initialisiert. Und ich muss das nur einmal ausführen und ich möchte keine neue Methode in jeder "TestFixture" -Klasse platzieren, nur um das zu tun.Einmalige Initialisierung für Nunit
Antwort
Mit dem Attribut [SetUpFixture]
können Sie Setup- und/oder Teardown-Code einmal für alle Tests unter demselben Namespace ausführen.
Here sind die Dokumente auf SetUpFixture
. Nach der Dokumentation:
A SetUpFixture außerhalb jeder Namensraum bietet Auf- und Abbau für die gesamte Baugruppe.
Also, wenn Sie SetUp
und TearDown
für alle Tests benötigen, dann stellen Sie sicher, die SetUpFixture
Klasse nicht in einem Namespace ist.
Alternativ könnten Sie immer eine statische Klasse definieren, um "globale" Testvariablen zu definieren.
Erstellen Sie eine Klasse (ich nenne meine Config) und dekorieren Sie sie mit dem Attribut [SetUpFixture]
. Die Methoden [SetUp]
und [TearDown]
in der Klasse werden einmal ausgeführt.
[SetUpFixture]
public class Config
{
[SetUp] // [OneTimeSetUp] for NUnit 3.0 and up; see http://bartwullems.blogspot.com/2015/12/upgrading-to-nunit-30-onetimesetup.html
public void SetUp()
{
}
[TearDown]
public void TearDown()
{
}
}
NUnit v3 ändert die Attribute leicht. siehe [v3 docs] (https://github.com/nunit/nunit/wiki/SetUpFixture-Attribute) –
- 1. Einmalige Bindung für eckige translate
- 2. Winkel einmalige Bindungen für Objekteigenschaften
- 3. Wie erstellt man eine globale Initialisierung in NUnit 3.2?
- 4. Freeradius: Session Timeout Attribut für einmalige Anmeldung
- 5. Ansible-Inventardatei für einmalige Ansible-Wiedergabe schreiben
- 6. Wie einmalige Authentifizierung für zwei verschiedene Server?
- 7. Streifen für einmalige Zahlung. - Ruby on Rails
- 8. Logbücher für eine Heroku einmalige dyno, die
- 9. Einmalige Aufnahme von Kamerabildern
- 10. Gibt es eine nunit-console-runner.dll für NUnit 3.0?
- 11. iPhone Einmalige Ereignisse Programmierung
- 12. Split Einmalige Formel
- 13. Einmalige Bindung mit Filter
- 14. Einmalige Ausführung der Funktion
- 15. NUnit für Portable Class Bibliothekstests
- 16. Einmalige Werte in R bekommen
- 17. NUnit SetUpFixture-Attribut entspricht in xUnit?
- 18. Drupal Regeln Einmalige Login-Adresse
- 19. Alternative zum veralteten setup_environ() für einmalige Django-Skripte?
- 20. Einmalige Indizes für Mindestwerte in mehreren Listen erhalten
- 21. Einmalige Schaltfläche für ng-show dann ng-hide
- 22. Auswählen einer TSDB für eine einmalige Smart-Home-Installation
- 23. Stenografie Notation für Klassenmitglied Initialisierung
- 24. C# explizite Initialisierung für Enum
- 25. Legitime Verwendung für statische Initialisierung?
- 26. Literal-Initialisierung für Const-Referenzen
- 27. Fehlender Konstruktor für die Initialisierung
- 28. NUnit für Integrationstests mit einer Klassenbibliothek verwendet
- 29. TDD nUnit mehrere behauptet für eine Methode
- 30. Filter auf Kategorie für NUnit MSBuild Aufgaben?
, das ist genau das, was ich suchte, danke :) –
Nach dem [NUnit docs] (http://www.nunit.org/index.php? p = setupFixture & r = 2.5.5): "Eine SetUpFixture außerhalb eines beliebigen Namespace bietet SetUp und TearDown für die gesamte Baugruppe." Wenn Sie SetUp und TearDown für alle Tests benötigen, stellen Sie einfach sicher, dass sich die SetUpFixture-Klasse nicht in einem Namespace befindet. –
Dies sind die aktualisierten Dokumente für das SetupFixture-Attribut für NUnit 3+: https://github.com/nunit/docs/wiki/SetUpFixture-Attribute Die große Änderung besteht darin, dass Sie die Attribute [OneTimeSetup] und [OneTimeTearDown] verwenden müssen die eigentlichen Methoden statt nur [SetUp] und [TearDown]. –