Ich bin mit ein paar Tests mit ScalaTest, die vorhanden sein auf Verbindungen zu Testserver verlassen. Ich meine eigene Spec zur Zeit ähnlich wie diese erstellt:Wie programmiere ich ScalaTest programmatisch ignorieren/überspringen?
abstract class ServerDependingSpec extends FlatSpec with Matchers {
def serverIsAvailable: Boolean = {
// Check if the server is available
}
}
Ist es möglich, zu ignorieren (aber nicht scheitern) Tests, wenn diese Methode false
zurückkehrt?
Zur Zeit mache ich es in einem "hackish" Art und Weise:
"Something" should "do something" in {
if(serverIsAvailable) {
// my test code
}
}
aber ich möchte so etwas wie
whenServerAvailable "Something" should "do something" in {
// test code
}
oder
"Something" should "do something" whenServerAvailable {
// test code
}
Ich glaube, sollte ich meine benutzerdefinierten Tags definieren , aber ich kann nur auf den Quellcode von in
oder ignore
verweisen und ich verstehe nicht, wie ich sh Ich würde meine benutzerdefinierten Implementierungen anschließen.
Wie soll ich das erreichen?
Ich fand dies auch, aber die Dokumentation bezieht sich nur, wie es in der Befehlszeile zu tun. Allerdings verwende ich "sbt test" auf Jenkins, und ich möchte den Test programmatisch überspringen, wenn der Server nicht verfügbar ist. – rabejens
so sollte das Programm reagieren, wenn der Server verfügbar ist oder möchten Sie Jenkins konfigurieren zu schließen, wenn der Server verfügbar ist und dann haben jenkins entsprechend anpassen, die Tests laufen zu lassen? –
Oh, jetzt verstehe ich.Momentan starte und starte ich den Testserver programmatisch (es wird mit Docker auf einem Testserver per SSH ausgeführt), aber Jenkins dafür zu verwenden, ist die sauberere Lösung. – rabejens