sbt不会将ScalaTest表驱动的属性检查识别为测试

vor*_*rou 0 junit unit-testing scala sbt scalatest

我写了一些ScalaTest表驱动的属性检查,我正在尝试运行它们sbt test.查看报告,我看到它ScalaTest可以识别JUnit我拥有的所有测试(它们与检查在同一个类中),它运行属性检查(即forAll正文),但它不forAll作为测试.如果失败,我会在报告中看到堆栈跟踪(ScalaTest测试异常失败)并sbt说测试运行期间出现"错误",但它表示所有测试都已通过.报告中的测试总数仅包括JUnit测试.

是否支持这种测试方式sbt

Bil*_*ers 6

PropertyChecks中的所有内容都不是测试.它本质上是一个美化的断言.您需要在命名测试中放置断言.怎么做取决于你选择的风格.例如,在FunSuite中,您可以编写如下内容:

class MySpec extends FunSuite with PropertyChecks {
  test("give the test a name here") {
    forAll(x: Int, y: Int) {
      // make assertions here
    }
  }
}
Run Code Online (Sandbox Code Playgroud)