考虑以下org.scalatest.TagAnnotation
子类:排除通过注释不工作的SBT测试/ testOnly
public class TestSizeTags {
/** Tests with crazy long runtimes **/
@org.scalatest.TagAnnotation
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public static @interface HugeTestClass {}
}
让我们annotate
/tag
与它的类:
@HugeTestClass
class ItemsJobTest extends FunSuite with BeforeAndAfterEach with DataFrameSuiteBase {
现在我们想快速“烟测试套件“在代码库上;因此,让我们(尝试)至排除由HugeTestClass
注释的测试用例:
命令行:
sbt test * -- -l HugeTestClass
或可能:
sbt 'testOnly * -- -l HugeTestClass'
让我们也SBT内尝试它本身:
sbt> testOnly * -- -l HugeTestClass
在所有箱子上面我们(不幸)仍然可以看到:
[info] ItemsJobTest:
^C[info] - Run Items Pipeline *** FAILED *** (2 seconds, 796 milliseconds)
所以测试实际上做运行..违背意愿。
那么,通过sbt
到scalatest
类应用Tag Filter(/Exclusion)
类的正确语法/方法是什么?
我有使用scala标签来包含或排除,例如。 '对象HugeTestClassTag扩展org.scalatest.Tag(“DatabaseTest”)''然后添加'HugeTestClassTag'到我的测试方法中。顺便应该'HugeTestClass'为你的静态类吗? – prayagupd
@prayagupd是的,它是静态的:更新OP显示它是一个内部类 – javadba
尝试把你的testOnly部分放在双引号中,也给完整的包让Tag忽略。 – prayagupd