【问题标题】: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 版本,很遗憾,这是不可能的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-10-13
          • 2014-02-16
          • 2013-10-30
          • 2013-03-23
          • 2019-07-25
          • 2015-03-02
          • 2014-07-26
          • 2019-12-18
          相关资源
          最近更新 更多