Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ScalaTest中禁用测试套件_Scala_Testing_Scalatest - Fatal编程技术网

如何在ScalaTest中禁用测试套件

如何在ScalaTest中禁用测试套件,scala,testing,scalatest,Scala,Testing,Scalatest,如何禁用测试套件,即类内的所有测试扩展FunSpec 我找到的唯一解决方案是在每次测试之前将替换为忽略,但是在几十个测试中这样做是很无聊的。麻烦的测试,然后根据标签进行测试 标记是一次性的工作。标记是一种选择,但您需要相应地标记每个测试,您不能以这种方式排除完整的测试。然而,正如user272735所提到的,标记测试是一次性的工作 另一个选项是定义主套件,并将nestedSuites的列表限制为要运行的套件()。明显的缺点是,您必须维护主测试套件,即向其中添加新创建的测试套件。您可以通过在文件夹

如何禁用测试套件,即类内的所有测试扩展
FunSpec

我找到的唯一解决方案是在每次测试之前将
替换为
忽略
,但是在几十个测试中这样做是很无聊的。

麻烦的测试,然后根据标签进行测试


标记是一次性的工作。

标记是一种选择,但您需要相应地标记每个测试,您不能以这种方式排除完整的测试。然而,正如user272735所提到的,标记测试是一次性的工作

另一个选项是定义主套件,并将
nestedSuites
的列表限制为要运行的套件()。明显的缺点是,您必须维护主测试套件,即向其中添加新创建的测试套件。您可以通过在文件夹中递归,创建一个可以找到的所有测试套件的列表,并减去放入黑名单的测试套件来避免这种情况。此外,在文件夹中递归已经为您提供了一个筛选符合(外部)给定条件的文件的机会


第三种选择——尽管更为粗糙——是更改您想要黑名单的套件所属的软件包。然后,您可以使用测试运行程序仅运行某些包中包含的套件。阅读文档部分的更多内容。

在1.8中,实现这一点的简单方法是添加一个接受伪参数的构造函数。如果类没有公共的无参数构造函数,ScalaTest(和sbt)将不会发现该类:

class MySuite(ignore: String) extends FunSuite { 
  // ...
}
在2.0中,您只需在类上写入@Ignore即可:

@Ignore
class MySuite extends FunSuite {
  // ...
}
您可以将这两种方法用于不同的测试和整个套装。

使用@DoNotDiscover

从:

根据文档,假设您有这样的测试套件

describe ("some  component") {
  it ("should do something") {
   ...
  }
  it ("should also do something else") {
   ...
  }
}
要仅禁用一个测试,可以使用
ignore()
方法

describe ("some  component") {
  ignore ("should do something") {
   ...
  }
  ...
}

不管你做什么,我都试过了,但是没有任何影响,我正在使用scala 2.10.2,请帮助我@比尔文纳斯
describe ("some  component") {
  ignore ("should do something") {
   ...
  }
  ...
}