Богатые возможности фильтрации с MUnit в Scala - PullRequest
0 голосов
/ 06 марта 2020

MUnit - это новая Scala библиотека тестирования с возможностями расширенной фильтрации .

Вот пример на веб-сайте, с которым я не могу работать:

import scala.util.Properties
import munit._
object Windows213 extends Tag("Windows213")
class MySuite extends FunSuite {
  // reminder: type Test = GenericTest[Any]
  override def munitNewTest(test: Test): Test = {
    val isIgnored =
      options.tags(Windows213) && !(
        Properties.isWin &&
        Properties.versionNumberString.startsWith("2.13")
      )
    if (isIgnored) test.withBody(() => Ignore)
    else test
  }

  test("windows-213".tag(Windows213)) {
    // Only runs when operating system is Windows and Scala version is 2.13
  }
  test("normal test") {
    // Always runs like a normal test.
  }
}

Изменение с options.tags на test.tags устраняет одну из ошибок.

В строке if (isIgnored) test.withBody(() => Ignore) все еще происходит ошибка с этим сообщением:

[error] /Users/powers/Documents/code/my_apps/munit-example/src/test/scala/com/github/mrpowers/munit/example/RichFiltersSpec.scala:16:40: type mismatch;
[error]  found   : munit.Tag
[error]  required: MySuite.this.TestValue
[error]     (which expands to)  scala.concurrent.Future[Any]
[error]     if (isIgnored) test.withBody(() => Ignore)
[error]                                        ^
[error] one error found
[error] (Test / compileIncremental) Compilation failed

Обновление

Функция в настоящее время не работает , но планируется исправить .

В этом блоге обсуждается эта функция.

Будет сообщать об обновлении, когда пример будет исправлен.

1 Ответ

0 голосов
/ 14 марта 2020

Это исправлено в версии 0.6.0-M1.

Это новый синтаксис .

Этот код работает должным образом:

package com.github.mrpowers.munit.example

import scala.util.Properties
import munit._

object Windows213 extends Tag("Windows213")

class MySuite extends FunSuite {

  override def munitTestTransforms = super.munitTestTransforms ++ List(
    new TestTransform("Windows213", { test =>
      val isIgnored =
        test.tags(Windows213) && !(
          Properties.isWin &&
            Properties.versionNumberString.startsWith("2.13")
          )
      if (isIgnored) test.tag(Ignore)
      else test
    })
  )

  test("windows-213".tag(Windows213)) {
    assertEquals(2, 3)
  }

  test("normal test") {
    assertEquals(2, 2)
  }

}
...