Как сделать так, чтобы команда `groovy` выходила из нуля для неудачных тестов JUnit4? - PullRequest
1 голос
/ 27 марта 2020

При запуске тестов JUnit с помощью команды groovy с использованием встроенного автоматического тестировщика c он выходит из 0 даже в случае неудачного выполнения тестов. Я бы хотел, чтобы команда выходила не из нуля, если есть ошибки теста. Есть ли способ, которым я могу сделать это?

#!/usr/bin/env groovy
import org.junit.*

class BasicTest {

  @Test
  void test_failure() {
    assert false
  }
}
$ groovy --version
Groovy Version: 3.0.2 JVM: 13.0.2 Vendor: Oracle Corporation OS: Mac OS X

$ groovy basic_test.groovy
JUnit 4 Runner, Tests: 1, Failures: 1, Time: 8
Test Failure: test_failure(BasicTest)
Assertion failed:

assert false


        at org.codehaus.groovy.runtime.InvokerHelper.assertFailed(InvokerHelper.java:434)
        ...

$ echo $?
0

Спасибо, ребята!

1 Ответ

2 голосов
/ 27 марта 2020

Не видел людей, которые раньше выполняли подобные тесты ... (записывая их как * nix-скрипт)

Вы можете сделать это, хотя бы, чтобы отследить ошибку, и выйти с помощью 1

#!/usr/bin/env groovy
import org.junit.*
import org.junit.rules.*

class BasicTest {

  @Rule
  public TestRule watchman = [
    failed: {e, d -> 
      println d
      e.printStackTrace()
      System.exit(1)
    }
  ] as TestWatcher

  @Test
  void test_failure() {
    assert false
  }

}
...