Skip to content

cgruber/opentest4j

 
 

Repository files navigation

Open Test Alliance for the JVM

History

This project is the result of an initiative by the JUnit Lambda team.

Status Quo

There is no standard for testing on the JVM: the only common building block we have is java.lang.AssertionError.

AssertionError is great for signaling that a test has failed, but it doesn't go far enough. Each testing framework is therefore forced to fill the gap with custom subclasses of AssertionError or RuntimeException to provide a richer feature set to end users. The downside is that each framework has its own set of custom errors and exceptions, and this makes it a challenge for frameworks to interoperate.

For example, JUnit has long supported the notion of a failed assumption via its AssumptionViolatedException, but assertion frameworks like AssertJ cannot integrate that feature without a direct dependency on JUnit. Furthermore, the status quo makes the work of IDEs and build tools more difficult than it should be.

Proposal

The only real solution to this problem is to create a foundation that we can all build on!

Based on recent discussions with IDE and build tool developers from Eclipse, Gradle, and IntelliJ, the JUnit Lambda team is working on a proposal for an open source project to provide a minimal common foundation for testing libraries on the JVM. The primary goal of the project is to enable testing frameworks like JUnit, TestNG, Spock, etc. and third-party assertion libraries like Hamcrest, AssertJ, etc. to use a common set of exceptions that IDEs and build tools can support in a consistent manner across all testing scenarios -- for example, for consistent handling of failed assertions and failed assumptions as well as visualization of test execution in IDEs and reports.

Draft Implementation

We have begun with a small set of errors and exceptions that we consider to be common for all testing and assertion frameworks. In fact, early drafts of these errors and exceptions are already used in the JUnit Lambda Project.

Please take a look at our current draft in this project and let us know what you think.

Feedback is welcome!

What types of errors and exceptions should such a project support?

What types of properties should such errors and exceptions have?

What should the project be named?

Projects already contacted

We've already reached out to and asked for feedback from the maintainers of the following projects.

  • Test NG
  • Hamcrest
  • AssertJ
  • Spock
  • Google Truth
  • ScalaTest
  • Eclipse
  • IntelliJ
  • Gradle
  • Maven Surefire Plugin

Installation

Snapshot artifacts are deployed to Sonatype's snapshots repository.

Dependency Metadata

  • Group ID: org.opentest4j
  • Artifact ID: opentest4j
  • Version: 1.0.0-SNAPSHOT

See also: https://oss.sonatype.org/content/repositories/snapshots/org/opentest4j/opentest4j/

Continuous Integration Builds

Travis Build Status Jenkins Build Status


built on DEV@cloud

About

Open Test Alliance for the JVM

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%