testing jvm junit spock
With the rise of newer JVM languages like Groovy and Kotlin, feature-rich test frameworks emerged. The test framework Spock became a welcome alternative for many projects fearless to adopt Groovy as part of their polyglot software stack.
With the first GA release of JUnit 5 in September 2017, the JUnit team brought real innovation to the established space of testing JVM code. Not only is the release packed with new features comparable to the ones provided by Spock, JUnit 5 also serves as a platform for launching other test frameworks on the JVM.
In this demo-driven talk, we will compare typical testing usage patterns and features available for JUnit 5 and Spock. You’ll leave with a firm understanding of the benefits and tradeoffs delivered by both test frameworks.
testing integration fixture container docker
Many organizations struggle with maintaining tests that require more complex setup procedures. As a result, tests become flaky, unreliable and require manual intervention. In a world of “automate all the things” this is very counterproductive and unnecessarily costs organizations time and money.
In this lightning talk, we’ll have a look at setting up and running integration & functional tests with the help of the open source library TestContainers. You will learn how to stand up lightweight, disposable Docker instances running your application as reliable test fixtures.
ci cd pipeline docker jenkins gradle
Continuous Delivery is key to delivering software fast and frequently. Jenkins 2 has made great strides in providing a solution for modeling a build pipeline as code. In addition, Docker invoked from a Gradle build can help with implementing certain aspects of your pipeline. Let’s combine the benefits of these tools to implement a streamlined and bullet-proof process.
In this demo-driven talk, you will learn how to construct and operate a declarative pipeline with Jenkins. We’ll take a Spring Boot application all the way through the pipeline from building the Docker image, pushing the image to a registry, using it for integration testing and finally deploying the application to a Docker Swarm.
golang build gradle
For many Go projects, Make and shell scripts are the predominant tools of choice for automating the process of building source code as well as assembling and distributing binaries. While powerful tools, they do not provide any higher level abstractions like conventions and generalized concepts to minimize the burden on maintainability and readability. There must be a better way to avoid copy-pasting the same automation code from project to project!
In this demo-driven talk, we will discuss how the build tool Gradle can help with bootstrapping and streamlining the automation of Go projects. In the process, we’ll identify some typical challenges with the help of a sample project and how to overcome them with GoGradle, a community plugin for Gradle.
plugins recipes patterns gradle
Implementing plugins can be a daunting task for Gradle beginners and advanced users alike. The task requires many intricate considerations, decisions and deep knowledge about (sometimes undocumented) features. Have you ever asked yourself one of the following questions, then this session is for you!
testing functional gradle
Build code contributes to the success of a company to a large extent. It enables an organization to deliver their software to the end user fast, frequently and reliably. With Continuous Delivery becoming a standard practice throughout the industry and build logic increasing in complexity, a need arises to verify the logic powering these processes. Gradle provides powerful support for testing build code out-of-the-box. In this demo-driven session, we will discuss the ins and outs of TestKit, a Gradle core library that helps with functional testing of build logic.
plugin reusability gradle
Gradle is a general purpose, multi-platform build tool. Plugins allow for extending Gradle’s core capabilities with reusable and targeted functionality. In this session, we’ll discuss techniques and best practices for developing your own Gradle plugins by dissecting the structure, code, documentation and supporting infrastructure of an existing Gradle plugin.
dependency maven ivy gradle
Gradle’s dependency management is declarative, highly flexible and can cope with demanding requirements posed by enterprise projects. Among its key functionalities are transitive dependency resolution, full compatibility with existing infrastructure like Maven and Ivy repositories, as well as precise dependency resolution control, reporting and diagnostics. I am sure you are already using those features for your own projects but you can go further. In this demo-driven session, we will focus on less prominent, but extremely powerful dependency management capabilities you can use in your build today.
modularization ide gradle
Large, complex projects often consist of multiple modules based on particular functionality and logical boundaries. The benefits are obvious: better maintainability, less coupling and high cohesion of code. Gradle provides powerful support for configuring and executing modularized projects. In the course of this session, we will discuss the state of the art techniques for tackling highly-customized multi-project builds. Furthermore, this talk will give an outlook on the features to come.
web deployment container gradle
Web applications live and breathe in their runtime environment, the web container. But what is the best way to install the relevant artifacts during development or as part of your deployment pipeline? In this talk, we will discuss the techniques and tooling required to implement efficient, flexible, and most importantly, automated deployment strategies to local and remote web containers with Gradle.
virtualization infrastructure vagrant docker gradle
Server infrastructure and configuration plays a crucial role in every build pipeline. It provides the runtime environment for your application and is used as basis for automated acceptance and exploratory testing. Managing infrastructure manually is time-consuming and error-prone. Virtualization helps to provide a repeatable, “production-like” environment. In this talk, we’ll discuss how Gradle integrates with popular tools for creating virtual machines (VMs) as part of a standardized deployment and release process.
ci cd pipeline jenkins gradle
Getting software from a developer’s machine to a production environment without a fully automated process is time-consuming and error-prone. Continuous Delivery enables building, testing and deploying of software through build pipelines with well-defined quality gates. In this session, we will discuss how to build an exemplary pipeline with the help of Gradle and Jenkins.