Skip to content

zamblauskas/sbt-examplestest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

scaladex-badge ci-badge

About

SBT plugin to generate unit tests for code examples in markdown (e.g. README) files.

Usage

Package is available at Maven Central. Check for the latest version and add to your project/plugins.sbt:

addSbtPlugin("io.github.zamblauskas" % "sbt-examplestest" % "<latest_version>")
version SBT scalatest munit-cats-effect-3
0.1.1 0.13 3.0.4
0.1.2 1.x 3.0.4
0.2.0+ 1.x 3.1.0 1.0.3

Plugin will be enabled by default. It will detect the testing library used in the project and select corresponding code generator. Then it will find all .md files in the base directory, generate unit test code for every Scala block (marked as ``` scala) and put it in target/scala-<version>/src_managed/test. Tests will be run during sbt test.

Example

If you have README.md:

``` scala val foo = "bar" foo shouldBe "bar" ```

plugin will create target/scala-2.11/src_managed/test/READMETest.scala:

import org.scalatest.{FunSpec, Matchers}

class READMETest extends FunSpec with Matchers {
  describe("README") {
    it("code block #0") {
val foo = "bar"
foo shouldBe "bar"
    }
  }
}

Configuration

Defaults should work for most of the projects, but you can change a few SBT keys if needed.

// path to markdown files
examplesTestInputFiles := (baseDirectory.value * "*.md").filter(_.isFile).get

// code block types the plugin generates unit tests for
examplesTestCodeBlockTypes := Seq("scala")

About

SBT plugin to generate unit tests for code examples

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages