# Introducing Test Suites

DevFeed: [Introducing Test Suites](<https://devfeed.tech/articles/introducing-test-suites-24655.md>)

Original publisher: [Read original article](<https://blog.gradle.org/introducing-test-suites>)

Author: Tom Tresansky

Published: 2022-11-15T05:00:00Z

Content type: article

Language: en

Sources: [The Gradle Blog](<https://devfeed.tech/sources/the-gradle-blog.md>)

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Java](<https://devfeed.tech/topics/java.md>), [Development](<https://devfeed.tech/topics/development.md>), [code productivity](<https://devfeed.tech/topics/code-productivity.md>)

Tags: [automated](<https://devfeed.tech/tags/automated.md>), [code](<https://devfeed.tech/tags/code.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [functional](<https://devfeed.tech/tags/functional.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [integration](<https://devfeed.tech/tags/integration.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [production](<https://devfeed.tech/tags/production.md>), [productivity](<https://devfeed.tech/tags/productivity.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>)

## AI overview

This article introduces Declarative Test Suites in Gradle 7.3. It explains how test suites help manage unit, integration, and end-to-end tests in a single Gradle JVM project while handling differences in dependencies, runtime requirements, external systems, and testing frameworks.

## Source excerpt

As projects grow in size and complexity and otherwise mature, they tend to accumulate a large collection of automated tests. Testing your software at multiple levels of granularity is important to surface problems quickly and to increase developer productivity. In Gradle 7.3, released November 2021, the Gradle team introduced a new feature called Declarative Test Suites. Using this feature makes it much easier to manage different types of tests within a single Gradle JVM project without worrying about low level "plumbing" details. Why Test Suites? Normally - whether or not you're practicing strict Test Driven Development - as you develop a project you will continuously add new unit tests alongside your production classes. By convention, for a Java project, these tests live in src/test/java: These unit tests ensure your classes behave correctly in isolation from the very beginning of your project's lifecycle. At some point later in development, you will be ready to test how your classes work together to create a larger system using integration tests. Later still, as a final step in certifying that your project works as designed, you will probably want to run the entire system in end-to-end tests which check functional requirements, measure performance, or otherwise confirm its readiness for release. There are a lot of error-prone details you need to consider in this process. Test Suites was created to improve this situation, in response to the hardships detailed below. Considerations when setting up additional tests Varied test goals often involve different and incompatible patterns. At a minimum you'll want to organize your test code by separating tests into different directories for each goal: But separating the source files is only the beginning. These types of tests might require different preconditions to be met prior to testing, utilize entirely different runtime and compile time dependencies, or interact with different external systems. The very testing framew