当前位置: 首页 > 知识库问答 >
问题:

sbt中的ScalaTest:有没有一种方法可以运行一个没有标签的单一测试?

楚宏胜
2023-03-14

我知道一个测试可以通过运行来运行,在sbt中,

testOnly *class -- -n Tag

有没有办法告诉sbt/scalatest在没有标签的情况下运行单个测试?例如:

testOnly *class -- -X 2

这意味着“在类中运行第二个测试。不管它是什么”。我们有一堆测试,没有人费心去标记它们,那么有没有办法在没有标签的情况下运行单个测试?

共有3个答案

柯波峻
2023-03-14

我看不到在测试类中运行单个未标记测试的方法,但我提供了我的工作流,因为它似乎对遇到这个问题的任何人都有用。

从 sbt 会话中:

test:testOnly *YourTestClass

(星号是通配符,您可以指定完整路径< code > com . example . specs . yourtestclass 。)

将执行该测试类中的所有测试。假设您最关心的是失败的测试,因此请更正任何失败的实现,然后运行:

test:testQuick

...它将只执行失败的测试。(在这种情况下,重复最近执行的< code>test:testOnly命令将与< code>test:testQuick相同,但是如果您将测试方法分成适当的测试类,您可以使用通配符使< code>test:testQuick成为重新运行失败测试的更有效的方法。)

请注意,ScalaTest 中用于测试的命名法是一个测试类,而不是特定的测试方法,因此将执行所有未标记的方法。

如果测试类中有太多的测试方法,请将它们分解为单独的类或适当地标记它们。(这可能是一个信号,表明所测试的类违反了单一责任原则,并且可能使用重构。

穆华彩
2023-03-14

我想添加一个具体的例子来补充其他答案

您需要指定要测试的类的名称,因此如果您有以下项目(这是一个 Play 项目):

通过从SBT控制台运行以下命令,您可以只测试< code >登录测试:

test:testOnly *LoginServiceSpec

如果从 SBT 控制台外部运行该命令,则应执行以下操作:

sbt "test:testOnly *LoginServiceSpec"
狄新翰
2023-03-14

现在交互模式中支持这一点(从ScalaTest 2.1.3开始):

testOnly *MySuite -- -z foo

仅运行名称包含子字符串“foo”的测试。

对于精确匹配而不是子字符串,请使用-t而不是-z

如果您从命令行运行它,它应该作为sbt的单个参数:

sbt 'testOnly *MySuite -- -z foo'
 类似资料:
  • 问题内容: 我知道Internet Explorer具有自动换行样式,但是我想知道是否有跨浏览器的方法可以对div中的文本进行这种操作。 最好是CSS,但JavaScript代码片段也可以正常工作。 编辑:是的,指的是长长的弦,为人们加油! 问题答案: 阅读原始评论时,卢瑟福正在寻找一种 跨浏览器的 方式来包装 不间断的 文本(根据他对IE的自动换行设计,旨在破坏不间断的字符串)。 我现在已经使用

  • 问题内容: 在此问题中找到了我能找到的最接近的示例:https : //github.com/tensorflow/tensorflow/issues/899 使用此最小的可复制代码: 但是,返回的FLOPS始终为“无”。有没有一种方法可以具体测量FLOPS,尤其是PB文件? 问题答案: 有点晚了,但也许将来对某些访客有帮助。对于您的示例,我成功测试了以下代码段: 也可以将分析器与以下代码段结合使

  • 问题内容: 我在做游戏,遇到一个问题…当我尝试保存时,JSON失败,并报告正在某处进行循环引用。我认为它实际上不是,我看不到它,因此是否有一种算法或其他任何方法可以告诉我确切的位置(在哪些对象和事物之间)?另外,是否有可以保存循环引用的JSON替代方案?我正在运行一个node.js服务器,我看到了,但是我无法使其正常工作(它不是作为模块组成的,我可以在我的代码中使用require())。 问题答案

  • 问题内容: 我正在建立一个带有flask的网站,其中用户具有帐户并能够登录。我正在使用flask-principal作为登录部分和角色管理。有没有办法让用户的会话在5分钟或10分钟后过期?我在flask文档或flask-principal文档中找不到该文件。 我想到了一种手动方法,在登录时在服务器端设置一个带有时间标签的变量,并在用户执行下一个操作时,服务器会验证该时间戳记上的时间增量并删除会话。

  • 问题内容: 我一直在寻找使用CSS编写的类似Google Chrome的标签,但是找不到。 我正在尝试复制外观,以便在Web应用程序或网站中使用它。 问题答案: 是的,用css3 艾夫(Ive)发表了一篇关于如何对其进行深入研究的博客,可悲的是,除非您使用图像,否则诺努斯将无法继续工作 编辑: 删除了对redeyeoperations的旧引用,现在导致其链接服务器场。这是一个较轻的版本,它在第三方

  • 问题内容: 我正在建立一个带有flask的网站,其中用户具有帐户并能够登录。我正在使用flask- principal作为登录部分和角色管理。有没有办法让用户的会话在5分钟或10分钟后过期?我在flask文档或flask- principal文档中找不到该文件。 我想到了一种手动方法,在登录时在服务器端设置一个带有时间标签的变量,并在用户执行下一个操作时,服务器会验证该时间戳记上的时间增量并删除会