Smart Testing 0.0.5 Released
Since we wrote this post we didn't laze around. Check our latest announcement.
The Arquillian team is proud to announce the 0.0.5 release of the Smart Testing component!
Highlights of this release
In this release we ship several API improvements making integration with 3rd party tools much easier.
Smart Testing API
The Smart Testing tool consists of three parts:
- Core
- Maven extension
- Surefire provider integration
Both the Surefire provider integration and the Maven extension are implemented only for the usage in Maven builds. They take care of the integration and invoke Smart Testing API provided by Core.
The Core contains the main logic that is responsible for selecting/ordering and applying corresponding strategies. This logic is exposed by Smart Testing API. If you want to use the logic in your environment or as an integration with some third-party library, you need to have the dependency of Smart Testing Core on your classpath:
<dependency>
<groupId>org.arquillian.smart.testing</groupId>
<artifactId>core</artifactId>
<version>${smart.testing.version}</version>
</dependency>
plus all dependencies of strategies you want to use for the prioritization:
<dependency>
<groupId>org.arquillian.smart.testing</groupId>
<artifactId>strategy-${strategy.name}</artifactId>
<version>${smart.testing.version}</version>
</dependency>
Having these dependencies specified, you can start using the API. The starting point is SmartTesting
class that provides you a fluent API:
SmartTesting
.with(className -> isTest(className), configuration)
.in("path/to/my/project")
.applyOnClasses(suite);
The first method with
takes as the first parameter a function that says which class is a test and which not. The second parameter is a configuration that should be used. The configuration file can be loaded using:
ConfigurationLoader.load(projectDir)
The second method in
sets path to the project where the tests will be executed in.
Last method is either applyOnClasses
or applyOnNames
. It invokes the prioritization process and returns a prioritized set of TestSelection
classes. This class contains class name and list of strategies that are applied to it. If you want to get only the names or classes then use the method SmartTesting.getNames(selection)
or SmartTesting.getClasses(selection)
respectively.
With it, you should be able to use the Smart Testing logic in your test suites without being limited to the Maven builds.
What’s next
We continue improving the tool so watch out for more!
What is Smart Testing?
Smart Testing is a tool that speeds up the test running phase by reordering test execution plan to increase a probability of fail-fast execution and thus give you faster feedback about your project’s health.
Release details
Component | Smart Testing |
---|---|
Version | 0.0.5 view tag |
Release date | 2017-11-28 |
Released by | Matous Jobanek |
Compiled against |
Published artifacts org.arquillian.smart.testing
- org.arquillian.smart.testing » core jar javadoc pom
- org.arquillian.smart.testing » api jar javadoc pom
- org.arquillian.smart.testing » surefire-provider jar javadoc pom
- org.arquillian.smart.testing » junit-test-result-parser jar javadoc pom
- org.arquillian.smart.testing » strategy-affected jar javadoc pom
- org.arquillian.smart.testing » strategy-changed jar javadoc pom
- org.arquillian.smart.testing » strategy-failed jar javadoc pom
- org.arquillian.smart.testing » maven-lifecycle-extension jar javadoc pom
- org.arquillian.smart.testing » git-rules jar javadoc pom
- org.arquillian.smart.testing » smart-testing-test-bed jar javadoc pom
Release notes and resolved issues 4
- Component: Core
-
- #272 Ownership of test report directory storage should be moved to TemporaryInternalFiles class
- #270 When the test reports are loaded it should use the directory set by API
- #269 Move autocorrect functionality located in DependencyResolver class to the Configuration class
- #268 Move configuration lookup logic to configuration loader
Thanks to the following list of contributors: Matous Jobanek, Bartosz Majsak