【问题标题】:ScalaTest and IntelliJ - Running one Test at a timeScalaTest 和 IntelliJ - 一次运行一个测试
【发布时间】:2014-05-24 10:22:54
【问题描述】:
我有一个扩展了 FlatSpec 的 ScalaTest。我在测试中有很多测试,现在我希望有可能一次运行一个测试。无论我做什么,我都无法让 IntelliJ 去做。在测试的编辑配置中,我可以通过给出测试的名称来指定它应该一次运行一个测试。例如:
it should "test the sample multiple times" in new MyDataHelper {
...
}
我将名称命名为“多次测试样本”,但它似乎并没有这样做,我所看到的只是它只打印 Empty Test Suite。任何想法如何做到这一点?
【问题讨论】:
标签:
intellij-idea
scalatest
【解决方案1】:
对我有用的一种方法是在测试定义中右键单击(在 Windows 上),然后选择“Run MyTestClass...”——或者,等效地,Ctrl-Shift-F10 光标已经在里面考试。但这有点微妙,您的具体示例可能会导致您的问题。考虑:
class MyTestClass extends FlatSpec with Matchers {
"bob" should "do something" in {
// ...
}
it should "do something else" in {
// ...
}
"fred" should "do something" in {
// ...
}
it should "do something else" in {
// ...
}
}
我可以使用上述方法单独运行四个测试中的任何一个。您基于编辑配置的方法也有效。但是,如果我删除第一个测试,我将无法单独运行第二个测试——其他测试仍然很好。这是因为以it 开头的测试旨在跟随不以it 开头的测试——然后it 被替换为测试名称中的适当字符串。
如果你想通过设置配置来运行测试,那么这四个测试的名称是:
- 鲍勃应该做点什么
- 鲍勃应该做点别的事情
- fred 应该做点什么
- fred 应该做点别的事情
再次注意it 的替换——如果不遵循另一个测试,则无法确定以it 开头的测试的名称。
我在 Windows 上使用带有 Scala 2.10.4、Scala 插件 0.41.1 和 ScalaTest 2.1.0 的 IntelliJ Idea 13.1.4。如果这在早期版本的 Idea 或插件中效果不佳,我不会感到惊讶。
【解决方案2】:
如果使用 Gradle,请转至 Preferences > Build, Execution, Deployment > Build Tools > Gradle,如果尚未在 Build and run > Run tests using: 部分选择 IntelliJ IDEA。
【解决方案3】:
我刚刚意识到我可以使用 IntelliJ 13.1.3 社区版运行单独的测试。使用我之前的 13.0.x 版本,很遗憾,这是不可能的。