ScalaTest和IntelliJ - 一次运行一个测试

时间:2014-04-10 15:40:20

标签: intellij-idea scalatest

我有一个扩展FlatSpec的ScalaTest。我在测试中有很多测试,现在我想有可能一次运行一个测试。无论我做什么,我都无法让IntelliJ去做。在测试的编辑配置中,我可以指定它应该通过给出测试的名称一次运行一个测试。例如:

it should "test the sample multiple times" in new MyDataHelper {
  ...
}

我将这个名称命名为“多次测试样本”,但它似乎没有采取这一点,我所看到的只是打印空测试套件。有什么想法可以做到这一点吗?

3 个答案:

答案 0 :(得分:1)

如果使用 Gradle,请转到 Preferences > Build, Execution, Deployment > Build Tools > Gradle 并在 Build and run > Run tests using: 部分中,如果您还没有选择 IntelliJ IDEA

答案 1 :(得分:0)

对我有用的方法是在测试定义中右键单击(在Windows上),然后选择"运行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的替换 - 如果它没有跟随另一个测试,则无法确定以it开头的测试名称。

我在Windows上使用IntelliJ Idea 13.1.4,Scala 2.10.4,Scala插件0.41.1和ScalaTest 2.1.0。如果在早期版本的Idea或插件中效果不佳,我不会感到惊讶。

答案 2 :(得分:0)

我刚刚意识到我能够使用IntelliJ 13.1.3 Community Edition运行单独的测试。对于我之前使用过的那个13.0.x,遗憾的是不可能。