Skip to content

Commit

Permalink
Merge pull request #26210 Add integ test for closure-based listeners …
Browse files Browse the repository at this point in the history
…in AbstractTestTask

...which were not working before 8.4.

Issue: #25311, #25983

Co-authored-by: Rafael Chaves <rchaves@gradle.com>
  • Loading branch information
bot-gradle and abstratt committed Aug 30, 2023
2 parents a390d39 + 9f4ddea commit 96b18af
Showing 1 changed file with 44 additions and 0 deletions.
Expand Up @@ -72,4 +72,48 @@ abstract class AbstractJUnit4TestListenerIntegrationTest extends AbstractJUnitTe
assert containsLine(result.getOutput(), "START [Test testError(SomeTest)] [testError]")
assert containsLine(result.getOutput(), "FINISH [Test testError(SomeTest)] [testError] [java.lang.RuntimeException: message]")
}

def "can listen for test events using closures"() {
given:
file('src/test/java/SomeTest.java') << """
${testFrameworkImports}
public class SomeTest {
@Test
public void testPass() { }
@Test
public void testFail() { fail("Some reason"); }
@Test
public void testError() { throw new RuntimeException(\"message\"); }
}
""".stripIndent()

buildFile << """
apply plugin: 'java'
${mavenCentralRepository()}
dependencies {
${testFrameworkDependencies}
}
test {
${configureTestFramework}
beforeTest { test -> println "START [\$test] [\$test.name]" }
afterTest { test, result -> println "FINISH [\$test] [\$test.name] [\$result.exception]" }
beforeSuite { suite -> println "START [\$suite] [\$suite.name]" }
afterSuite { suite, result -> println "FINISH [\$suite] [\$suite.name]" }
ignoreFailures = true
}
""".stripIndent()

when:
ExecutionResult result = executer.withTasks("test").run()

then:
assert containsLine(result.getOutput(), "START [Test class SomeTest] [SomeTest]")
assert containsLine(result.getOutput(), "FINISH [Test class SomeTest] [SomeTest]")
assert containsLine(result.getOutput(), "START [Test testPass(SomeTest)] [testPass]")
assert containsLine(result.getOutput(), "FINISH [Test testPass(SomeTest)] [testPass] [null]")
assert containsLine(result.getOutput(), "START [Test testFail(SomeTest)] [testFail]")
assert containsLine(result.getOutput(), "FINISH [Test testFail(SomeTest)] [testFail] [java.lang.AssertionError: Some reason]")
assert containsLine(result.getOutput(), "START [Test testError(SomeTest)] [testError]")
assert containsLine(result.getOutput(), "FINISH [Test testError(SomeTest)] [testError] [java.lang.RuntimeException: message]")
}
}

0 comments on commit 96b18af

Please sign in to comment.