Я сталкиваюсь с этой проблемой при включении пользовательского репортера Allure для самого крупного . Эта ошибка происходит через scala, но большинство классов в трассировке стека происходят из библиотек Java.
Сообщение об ошибке class "ch.qos.logback.classic.Level" could not be found
, хотя в той же трассировке стека он содержит класс в пакете ch.qos.logback.classic
.
Мой logback-test.xml имеет фильтр для исключения строккоторые содержат определенную строку. Это прекрасно работает, когда я не использую собственный репортер. Никаких исключений, и журналы корректно отфильтровываются.
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator class="ch.qos.logback.classic.boolex.JaninoEventEvaluator">
<expression>
return logger.contains("DbMigrate");
</expression>
</evaluator>
<OnMismatch>NEUTRAL</OnMismatch>
<OnMatch>DENY</OnMatch>
</filter>
<withJansi>true</withJansi>
<encoder>
<pattern>[%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg %n</pattern>
</encoder>
</appender>
Однако после добавления настраиваемого репортера в ScalaTest:
testOptions in Test ++= Seq(
Tests.Argument(TestFrameworks.ScalaTest, "-oD"),
// this is only an issue when the following line is added
Tests.Argument(TestFrameworks.ScalaTest, "-C", "io.qameta.allure.scalatest.AllureScalatest")
)
Я получаю следующую ошибку:
ERROR in ch.qos.logback.classic.boolex.JaninoEventEvaluator@7079536e - Could not start evaluator with expression [return logger.contains("DbMigrate");] org.codehaus.commons.compiler.CompileException: Line 1, Column 1: A class "ch.qos.logback.classic.Level" could not be found
at org.codehaus.commons.compiler.CompileException: Line 1, Column 1: A class "ch.qos.logback.classic.Level" could not be found
at at org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:12024)
at at org.codehaus.janino.UnitCompiler.getSingleTypeImport(UnitCompiler.java:10584)
at at org.codehaus.janino.UnitCompiler.checkForConflictWithSingleTypeImport(UnitCompiler.java:453)
at at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:409)
at at org.codehaus.janino.UnitCompiler.access$400(UnitCompiler.java:227)
at at org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:390)
at at org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:385)
at at org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:1594)
at at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:385)
at at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:363)
at at org.codehaus.janino.UnitCompiler.access$000(UnitCompiler.java:227)
at at org.codehaus.janino.UnitCompiler$1.visitCompilationUnit(UnitCompiler.java:337)
at at org.codehaus.janino.UnitCompiler$1.visitCompilationUnit(UnitCompiler.java:334)
at at org.codehaus.janino.Java$CompilationUnit.accept(Java.java:363)
at at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:334)
at at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:236)
at at org.codehaus.janino.SimpleCompiler.compileToClassLoader(SimpleCompiler.java:465)
at at org.codehaus.janino.ClassBodyEvaluator.compileToClass(ClassBodyEvaluator.java:315)
at at org.codehaus.janino.ScriptEvaluator.cook2(ScriptEvaluator.java:727)
at at org.codehaus.janino.ScriptEvaluator.cook(ScriptEvaluator.java:716)
at at org.codehaus.janino.ScriptEvaluator.cook(ScriptEvaluator.java:663)
at at org.codehaus.janino.ScriptEvaluator.cook(ScriptEvaluator.java:631)
at at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:206)
at at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:79)
at at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:74)
at at org.codehaus.janino.ScriptEvaluator.<init>(ScriptEvaluator.java:259)
at at ch.qos.logback.core.boolex.JaninoEventEvaluatorBase.start(JaninoEventEvaluatorBase.java:57)
at at ch.qos.logback.core.joran.action.NestedComplexPropertyIA.end(NestedComplexPropertyIA.java:161)
at at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:309)
at at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:193)
at at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:179)
at at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62)
at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:165)
at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:152)
at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:110)
at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53)
at at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:75)
at at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:150)
at at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)
at at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
at at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
at at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
at at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)
at at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
at at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)
at at io.qameta.allure.AllureLifecycle.<clinit>(AllureLifecycle.java:55)
at at io.qameta.allure.Allure.getLifecycle(Allure.java:70)
at at io.qameta.allure.scalatest.AllureScalatest.<init>(AllureScalatest.scala:89)
at at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at at java.lang.Class.newInstance(Class.java:442)
at at org.scalatest.tools.ReporterFactory.getCustomReporter(ReporterFactory.scala:30)
at at org.scalatest.tools.ReporterFactory.createCustomReporter(ReporterFactory.scala:207)
at at org.scalatest.tools.ReporterFactory.getReporterFromConfiguration(ReporterFactory.scala:240)
at at org.scalatest.tools.ReporterFactory.$anonfun$createReportersFromConfigurations$1(ReporterFactory.scala:248)
at at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:238)
at at scala.collection.Iterator.foreach(Iterator.scala:941)
at at scala.collection.Iterator.foreach$(Iterator.scala:941)
at at scala.collection.AbstractIterator.foreach(Iterator.scala:1429)
at at scala.collection.IterableLike.foreach(IterableLike.scala:74)
at at scala.collection.IterableLike.foreach$(IterableLike.scala:73)
at at org.scalatest.tools.ReporterConfigurations.foreach(ReporterConfiguration.scala:42)
at at scala.collection.TraversableLike.map(TraversableLike.scala:238)
at at scala.collection.TraversableLike.map$(TraversableLike.scala:231)
at at org.scalatest.tools.ReporterConfigurations.map(ReporterConfiguration.scala:42)
at at org.scalatest.tools.ReporterFactory.createReportersFromConfigurations(ReporterFactory.scala:247)
at at org.scalatest.tools.ReporterFactory.getDispatchReporter(ReporterFactory.scala:251)
at at org.scalatest.tools.Framework$ScalaTestRunner.<init>(Framework.scala:654)
at at org.scalatest.tools.Framework.runner(Framework.scala:1102)
at at sbt.Defaults$.$anonfun$createTestRunners$1(Defaults.scala:1095)
at at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:238)
at at scala.collection.immutable.Map$Map2.foreach(Map.scala:159)
at at scala.collection.TraversableLike.map(TraversableLike.scala:238)
at at scala.collection.TraversableLike.map$(TraversableLike.scala:231)
at at scala.collection.AbstractTraversable.map(Traversable.scala:108)
at at sbt.Defaults$.createTestRunners(Defaults.scala:1089)
at at sbt.Defaults$.allTestGroupsTask(Defaults.scala:1157)
at at sbt.Defaults$.$anonfun$testTasks$10(Defaults.scala:894)
at at scala.Function1.$anonfun$compose$1(Function1.scala:49)
at at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62)
at at sbt.std.Transform$$anon$4.work(Transform.scala:67)
at at sbt.Execute.$anonfun$submit$2(Execute.scala:281)
at at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:19)
at at sbt.Execute.work(Execute.scala:290)
at at sbt.Execute.$anonfun$submit$1(Execute.scala:281)
at at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178)
at at sbt.CompletionService$$anon$2.call(CompletionService.scala:37)
at at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at at java.lang.Thread.run(Thread.java:748)
Соответствующие зависимости и версии:
- ch.qos.logback / logback-core / jars / logback-core-1.2.3.jar
- ch.qos.logback / logback-classic / jars / logback-classic-1.2.3.jar
- io.qameta.allure / allure-java-commons / jars / allure-java-commons-2.13.0.jar
- io.qameta.allure / allure-model / jars / allure-model-2.13.0.jar
- io.qameta.allure / allure-scalatest_2.12 / jars / allure-scalatest_2. 12-2.13.0.jar
- org.codehaus.janino / janino / jars / janino-3.1.0.jar
- org.codehaus.janino / commons-compiler / jars / commons-compiler-3.1.0.jar
Заранее спасибо за помощь!