From f3da2f5271fe355f0407b20a45b9a1d762caca61 Mon Sep 17 00:00:00 2001 From: Robin Date: Thu, 6 Jun 2024 23:37:44 +0200 Subject: [PATCH] getting unittests to work, NEOFORGE ADD SOME PROPER DOCS PLS --- build.gradle.kts | 51 +++++++++++++------ .../unittest/TestProgressBar.java | 7 +++ 2 files changed, 42 insertions(+), 16 deletions(-) create mode 100644 src/junit/java/robaertschi/environmenttech/unittest/TestProgressBar.java diff --git a/build.gradle.kts b/build.gradle.kts index 11011eb..c14c600 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -34,6 +34,19 @@ base { java.toolchain.languageVersion = JavaLanguageVersion.of(21) +sourceSets { + // Include resources generated by data generators. + main.configure { + resources { + srcDir("src/generated/resources") + } + } + create("junit") { + } +} + + + //minecraft.accessTransformers.file rootProject.file("src/main/resources/META-INF/accesstransformer.cfg") //minecraft.accessTransformers.entry public net.minecraft.client.Minecraft textureManager # textureManager @@ -60,6 +73,7 @@ runs { create("junit") { junit(true) + unitTestSources(sourceSets["junit"]) } create("client") { @@ -89,23 +103,12 @@ runs { } -// Include resources generated by data generators. -sourceSets.main.configure { - resources { - srcDir("src/generated/resources") - } -} +configurations["junitImplementation"].extendsFrom(configurations.implementation.get()) -sourceSets { - test { - java { - srcDir("src/test/java") - } - resources{ srcDir("src/test/resources")} - } +afterEvaluate { + runs["junit"].modSources = runs["junit"].modSources.get().stream().filter { it != sourceSets.main }.toList() } - dependencies { // Specify the version of Minecraft to use. // Depending on the plugin applied there are several options. We will assume you applied the userdev plugin as shown above. @@ -115,9 +118,25 @@ dependencies { // For all intends and purposes: You can treat this dependency as if it is a normal library you would use. implementation ("net.neoforged:neoforge:${neoVersion}") + + // Testing - testImplementation(platform("org.junit:junit-bom:5.10.2")) - testImplementation("org.junit.jupiter:junit-jupiter-params") + + sourceSets.getByName("junit") { + dependencies { + + implementation(platform("org.junit:junit-bom:5.10.2")) + implementation("org.junit.jupiter:junit-jupiter-params") + runtimeOnly("org.junit.jupiter:junit-jupiter-engine") + } + + } + +// "junitImplementation"(platform("org.junit:junit-bom:5.10.2")) +// "junitImplementation"("org.junit.jupiter:junit-jupiter-params") +// "junitRuntimeOnly"("org.junit.jupiter:junit-jupiter-engine") + + // Example mod dependency with JEI // The JEI API is declared for compile time use, while the full JEI artifact is used at runtime diff --git a/src/junit/java/robaertschi/environmenttech/unittest/TestProgressBar.java b/src/junit/java/robaertschi/environmenttech/unittest/TestProgressBar.java new file mode 100644 index 0000000..bb9d347 --- /dev/null +++ b/src/junit/java/robaertschi/environmenttech/unittest/TestProgressBar.java @@ -0,0 +1,7 @@ +package robaertschi.environmenttech.unittest; + +import net.neoforged.testframework.annotation.TestGroup; +import org.junit.jupiter.api.Test; + +public class TestProgressBar { +}