Skip to content

goncalossilva/kotlinx-resources

main
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

kotlinx-resources

badge-library-version badge-plugin-version badge-jvm badge-js badge-nodejs badge-android badge-ios badge-watchos badge-tvos badge-macos badge-windows badge-linux

Kotlin Multiplatform (KMP) plugin and library that add support for reading resources in tests.

The plugin and a library work in tandem to provide a unified API across platforms for reading resources from each source set's resources folder.

Usage

List the plugin in your build.gradle.kts:

plugins {
    id("com.goncalossilva.resources")
}

And add the dependency to your commonTest source set:

kotlin {
    sourceSets {
        val commonTest by getting {
            dependencies {
                implementation("com.goncalossilva:resources:<version>")
            }
        }
    }
}

Once that's done, a Resource class becomes available in all test sources, with a simple API:

class Resource(path: String) {
    fun exists(): Boolean
    fun readText(): String
}

Note that path should be relative to the project's directory, such as src/commonTest/resources/some/optional/folders/file.txt. This is convenient from an implementation perspective, but also allows having resource files with the same name under difference resource folders.

Example

Library tests use the library itself, so they serve as a practical example. See ResourceTest for example usage, and resources-library/src/commonTest/resources for the associated folder structure for resources.

Acknowledgements

This library is inspired by this gist by @dellisd.

License

Released under the MIT License.