diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d2588e4e4b..a5f816a313 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -45,6 +45,10 @@ First Build the jar, then cd into the `scripts` directory and run `./windows-bun ## Running in development mode run `./gradlew :server:run --stacktrace` to run the server +## Running tests +run `./gradlew :server:test` to execute all tests +to test a specific class run `./gradlew :server:test --tests ` + ## Building the android-jar maven repository Run `AndroidCompat/getAndroid.sh`(macOS/Linux) or `AndroidCompat/getAndroid.ps1`(Windows) from project's root directory to download and rebuild the jar file from Google's repository, diff --git a/server/build.gradle.kts b/server/build.gradle.kts index fdbb1d1e25..b56288d495 100644 --- a/server/build.gradle.kts +++ b/server/build.gradle.kts @@ -125,7 +125,11 @@ tasks { } test { - useJUnit() + useJUnitPlatform() + testLogging { + showStandardStreams = true + events("passed", "skipped", "failed") + } } named("processResources") { diff --git a/server/src/test/kotlin/suwayomi/TestExtensions.kt b/server/src/test/kotlin/suwayomi/TestExtensions.kt index 18aaf2c2d2..b72527c991 100644 --- a/server/src/test/kotlin/suwayomi/TestExtensions.kt +++ b/server/src/test/kotlin/suwayomi/TestExtensions.kt @@ -30,6 +30,7 @@ import suwayomi.tachidesk.manga.impl.util.lang.awaitSingle import suwayomi.tachidesk.manga.impl.util.source.GetCatalogueSource.getCatalogueSource import suwayomi.tachidesk.manga.model.dataclass.ExtensionDataClass import suwayomi.tachidesk.server.applicationSetup +import xyz.nulldev.ts.config.CONFIG_PREFIX import java.io.File import java.util.concurrent.atomic.AtomicInteger @@ -48,8 +49,8 @@ class TestExtensions { @BeforeAll fun setup() { - val dataRoot = File("tmp/TestDesk").absolutePath - System.setProperty("suwayomi.tachidesk.server.rootDir", dataRoot) + val dataRoot = File(BASE_PATH).absolutePath + System.setProperty("$CONFIG_PREFIX.server.rootDir", dataRoot) applicationSetup() setLoggingEnabled(false) @@ -72,7 +73,7 @@ class TestExtensions { sources = getSourceList().map { getCatalogueSource(it.id.toLong())!! as HttpSource } } setLoggingEnabled(true) - File("tmp/TestDesk/sources.txt").writeText(sources.joinToString("\n") { "${it.name} - ${it.lang.uppercase()} - ${it.id}" }) + File("$BASE_PATH/sources.txt").writeText(sources.joinToString("\n") { "${it.name} - ${it.lang.uppercase()} - ${it.id}" }) } @Test @@ -97,7 +98,7 @@ class TestExtensions { } } }.awaitAll() - File("tmp/TestDesk/failedToFetch.txt").writeText( + File("$BASE_PATH/failedToFetch.txt").writeText( failedToFetch.joinToString("\n") { (source, exception) -> "${source.name} (${source.lang.uppercase()}, ${source.id}):" + " ${exception.message}" @@ -122,7 +123,7 @@ class TestExtensions { } } }.awaitAll() - File("tmp/TestDesk/MangaFailedToFetch.txt").writeText( + File("$BASE_PATH/MangaFailedToFetch.txt").writeText( mangaFailedToFetch.joinToString("\n") { (source, manga, exception) -> "${source.name} (${source.lang}, ${source.id}):" + " ${manga.title} (${source.mangaDetailsRequest(manga).url}):" + @@ -157,7 +158,7 @@ class TestExtensions { } }.awaitAll() - File("tmp/TestDesk/ChaptersFailedToFetch.txt").writeText( + File("$BASE_PATH/ChaptersFailedToFetch.txt").writeText( chaptersFailedToFetch.joinToString("\n") { (source, manga, exception) -> "${source.name} (${source.lang}, ${source.id}):" + " ${manga.title} (${source.mangaDetailsRequest(manga).url}):" + @@ -182,7 +183,7 @@ class TestExtensions { } }.awaitAll() - File("tmp/TestDesk/ChapterPageListFailedToFetch.txt").writeText( + File("$BASE_PATH/ChapterPageListFailedToFetch.txt").writeText( chaptersPageListFailedToFetch.joinToString("\n") { (source, manga, exception) -> "${source.name} (${source.lang}, ${source.id}):" + " ${manga.first.title} (${source.mangaDetailsRequest(manga.first).url}):" + diff --git a/server/src/test/kotlin/suwayomi/TestUtils.kt b/server/src/test/kotlin/suwayomi/TestUtils.kt index 8f0cecd134..5c15dc09c2 100644 --- a/server/src/test/kotlin/suwayomi/TestUtils.kt +++ b/server/src/test/kotlin/suwayomi/TestUtils.kt @@ -17,3 +17,5 @@ fun setLoggingEnabled(enabled: Boolean = true) { Level.DEBUG } else Level.ERROR } + +const val BASE_PATH = "build/tmp/TestDesk"