2016-05-04 9 views
1

Ich habe eine Reihe von Dateien in meinem test_dir und das Problem ist, dass sie separat ausgeführt werden müssen, weil einer von ihnen den Code testet, der nur im Browser ausgeführt werden kann und der andere Code testet, der nur ausgeführt werden kann das Backend.Wie führe ich eine bestimmte Dart _test Datei mit Pub Run Test aus?

Jetzt weiß ich, es gibt ein -n Argument zu pub run test für die Angabe Testname, aber wie führe ich eine bestimmte Datei? Es ist nicht sehr klar aus der Dokumentation und das konnte ich nicht erfolgreich erreichen.

Antwort

2

Sie können nur das Verzeichnis oder konkrete Namen

pub run test test/some_dir/some_file_test.dart 

Datei hinzufügen Wenn Sie nur auf der Konsole bestimmte Tests ausgeführt werden sollen oder nur im Browser können Sie dies pro Test oder pro Datei oder alternativ in einem Projekt konfigurieren Konfigurationsdatei.

Einige Testdateien sind nur auf bestimmten Plattformen sinnvoll. Sie können dart:html oder dart:io verwenden, sie könnten das bestimmte Dateisystemverhalten von Windows testen oder sie verwenden eine Funktion, die nur in Chrome verfügbar ist. Die Annotation @TestOn macht es einfach, genau anzugeben, auf welchen Plattformen eine Testdatei ausgeführt werden soll. Setzen Sie ihn einfach am Anfang der Datei, bevor irgendwelche Bibliothek oder Einfuhrerklärungen:

@TestOn("vm") // or @TestOn("browser") 

import "dart:io"; 

import "package:test/test.dart"; 

void main() { 
    // ... 
} 

Wenn Sie alle Tests laufen wie

pub run test -pchrome -pfirefox -pie 

Dann wird dieser Test nicht ausgeführt werden, weil -pvm nicht war inbegriffen.

Dies ermöglicht feinkörnige Konfiguration wie

Zum Beispiel, wenn Sie einen Test auf jedem Browser aber Chrome laufen wollten, würden Sie @TestOn("browser && !chrome") schreiben.

Das Testpaket hat eine großartige README für alle anderen Konfigurationsoptionen.