我有一个扩展FlatSpec的ScalaTest。我在测试中有很多测试,现在我想有可能一次运行一个测试。无论我做什么,我都无法让IntelliJ去做。在测试的编辑配置中,我可以指定它应该通过给出测试的名称一次运行一个测试。例如:
it should "test the sample multiple times" in new MyDataHelper {
...
}
我将这个名称命名为“多次测试样本”,但它似乎没有采取这一点,我所看到的只是打印空测试套件。有什么想法可以做到这一点吗?
答案 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,遗憾的是不可能。