package org.perl8.test /** Base trait for test classes in this framework. Any tests that should be * autodiscovered by `sbt test` should extend this trait, and implement * [[runTests]]. */ trait Test { /** Runs the test. The TAP stream will be written to Console.out and * Console.err, so you can swap these out as required in order to parse it. * * @return The exit code that the test produced. Success is indicated by 0, * failure to run the correct number of tests by 255, and any other * failure by the number of tests that failed. This should be used * by reporters which run a single test, which can call * `sys.exit(exitCode)` */ def run: Int = runTests(false) /** Runs the test just like [[run]], but in a way that makes sense when test * results are being summarized rather than directly displayed. * * Summarizing test reporters tend to repeatedly update the same line on * the terminal, so this method makes calls to * [[org.perl8.test.tap.TestBuilder#diag diag]] (which sends messages to * stderr, where they are typically displayed as-is) prefix the message * with a newline, to ensure that the output starts on its own line. */ def runInHarness: Int = runTests(true) protected def runTests (terminalInUse: Boolean): Int }