Scala TestOnly和@DoNotDiscover

时间:2016-11-24 12:27:10

标签: scala scalatest

我正在开发一个用Scala编写的项目,并使用ScalaTest进行单元测试。

测试结构的方式是所有测试都包含在套件中。单个测试用例类使用属性@DoNotDiscover进行修饰,以便当有人运行sbt test时,只有套件运行且各个类不能独立运行。该套件然后执行所有测试用例。

这是非常好的但是这样做的一个副作用是,如果我sbt test-only com.IndividualTestCase那么我得到输出

[info] Run completed in 1 second, 142 milliseconds.
[info] Total number of tests run: 0
[info] Suites: completed 0, aborted 0
[info] Tests: succeeded 0, failed 0, canceled 0, ignored 0, pending 0
[info] No tests were executed.
[info] No tests to run for test:testOnly

我想要的是,如果有人说sbt test,那么只有套件被执行,而@DoNotDiscover的类不会被执行。

但是,如果我特意调用我的测试用例sbt test-only com.IndividualTestCase,那么SBT只能找到并执行指定的特定测试用例。

如果类标有@DoNotDiscover,那么我们就无法在单个测试用例上执行test-only(我可以轻松地在套件上进行测试)

documentationScalaTest will run classes annotated with DoNotDiscover if asked to explicitly, it just won't discover them.但这并没有发生在我身上。如您所见,单个测试用例上的仅测试命令未运行任何测试。

0 个答案:

没有答案