Considérez la sous-classe org.scalatest.TagAnnotation
suivante:Exclusion par l'annotation ne fonctionne pas pour le test de 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 {}
}
Laissez-nous annotate
/tag
une classe avec elle:
@HugeTestClass
class ItemsJobTest extends FunSuite with BeforeAndAfterEach with DataFrameSuiteBase {
Maintenant, nous voulons un rapide « fumée suite de tests "sur la base de code; Par conséquent, laissez-nous (tentative) à exclure les testcases annotés par HugeTestClass
:
Ligne de commande:
sbt test * -- -l HugeTestClass
ou peut-être:
sbt 'testOnly * -- -l HugeTestClass'
Tentons aussi dans les SBT lui-même:
sbt> testOnly * -- -l HugeTestClass
Dans tous cas ci-dessus, nous (malheureusement) voir encore:
[info] ItemsJobTest:
^C[info] - Run Items Pipeline *** FAILED *** (2 seconds, 796 milliseconds)
Donc, le test fait a fait run .. contrairement à l'intention.
Alors, quelle est la syntaxe/approche correcte pour appliquer une classe Tag Filter(/Exclusion)
via sbt
à scalatest
?
Je scala 'Tag' utilisé pour inclure ou exclure, par exemple. 'object HugeTestClassTag étend org.scalatest.Tag (" DatabaseTest ")' puis ajoute "HugeTestClassTag' à mes méthodes de test. En passant, est-ce que 'HugeTestClass' devrait être une classe statique pour vous? – prayagupd
@prayagupd Oui c'est statique: mise à jour de l'OP pour montrer qu'il s'agit d'une classe interne – javadba
essayez de mettre votre partie testOnly en guillemets doubles, donnez aussi le paquet complet à Tag pour l'ignorer. – prayagupd