gpt4 book ai didi

scalatest - 我如何让类里面的每个测试自动标记一个特定的标签

转载 作者:行者123 更新时间:2023-12-04 14:27:09 24 4
gpt4 key购买 nike

我正在使用 flatspec 特征来创建我的测试,并且我想创建一个基类,该基类将使用特定标签自动标记该类中的任何测试。

例如,从 IntegrationTest 类继承的类中的任何测试都将自动被适当标记。所以而不是:

  class ExampleSpec extends FlatSpec {
"The Scala language" must "add correctly" taggedAs(IntegrationTest) in {
val sum = 1 + 1
assert(sum === 2)
}

我想这样做并且仍然将测试标记为 IntegrationTest
  class ExampleSpec extends IntegrationSpec {
"The Scala language" must "add correctly" in {
val sum = 1 + 1
assert(sum === 2)
}

谢谢!

最佳答案

如果您愿意在测试类而不是父类上使用直接注释,则可以使用 https://github.com/kciesielski/tags-demo 中的示例。 .针对您的示例进行了一些调整,您需要声明一个 Java 类:

package tags;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

@org.scalatest.TagAnnotation
@Retention(RUNTIME)
@Target({METHOD, TYPE})
public @interface MyAnnotation {
}

然后你用它来注释 Scala 测试类:
@tags.MyAnnotation
class ExampleSpec extends FlatSpec {
"The Scala language" must "add correctly" in {
val sum = 1 + 1
assert(sum === 2)
}

然后你必须使用实际的字符串 tags.MyAnnotation指定要运行(或忽略)的标签。

我试图改为注释父类,但我无法让它工作。我可以想象这对您来说是否是一个重大问题,这取决于您还想做什么。

实际上, org.scalatest.Tag 的在线文档class 很好地描述了所有这些,尽管我是在按照 GitHub 上的上述项目使其工作后说的。

关于scalatest - 我如何让类里面的每个测试自动标记一个特定的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27846820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com