Test
Documentation is pending since the API is still developing, for an introduction please see this post Infrastructure testing with Solidblocks
Usage
To use solidblocks-test
just add the dependency to your Gradle build
plugins {
id("org.jetbrains.kotlin.jvm") version "1.9.22"
}
repositories {
mavenCentral()
}
dependencies {
implementation("org.junit.jupiter:junit-jupiter-api:5.11.0")
implementation("org.junit.jupiter:junit-jupiter-engine:5.11.0")
implementation("de.solidblocks:infra-test:0.3.0")
}
tasks.named<Test>("test") {
useJUnitPlatform()
}
And extend your test classes with SolidblocksTest
to get the SolidblocksTestContext
package solidblocks.test.gradle
import de.solidblocks.infra.test.SolidblocksTest
import de.solidblocks.infra.test.SolidblocksTestContext
import de.solidblocks.infra.test.command.shouldHaveExitCode
import de.solidblocks.infra.test.docker.DockerTestImage
import de.solidblocks.infra.test.output.outputShouldMatch
import de.solidblocks.infra.test.output.stderrShouldBeEmpty
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.ExtendWith
@ExtendWith(SolidblocksTest::class)
class CommandTest {
@Test
fun localCommand(testContext: SolidblocksTestContext) {
val currentUserName = System.getProperty("user.name")
val result = testContext.local().command("whoami").runResult()
result shouldHaveExitCode 0
result outputShouldMatch (".*$currentUserName.*")
result.stderrShouldBeEmpty()
}
@Test
fun dockerCommand(testContext: SolidblocksTestContext) {
val result = testContext.docker(DockerTestImage.UBUNTU_22).command("whoami").runResult()
result shouldHaveExitCode 0
result outputShouldMatch (".*root.*")
result.stderrShouldBeEmpty()
}
}