Hos*_*ein 8 java testing stack-trace playframework playframework-2.0
我在Play框架中使用Java,并且我在通过IDE(IntelliJ)运行时通过了一些测试(功能测试),但是当我通过控制台运行测试时失败了.
我的问题是测试日志中显示的堆栈跟踪只有2行,我需要完整的堆栈跟踪来查看那里发生了什么,我尝试了这里提到的任何设置组合:spec2设置都通过放置它们在build.sbt命令行中或在命令行中提供它们.似乎没有效果!这是我的build.sbt:
version := "1.0-SNAPSHOT"
libraryDependencies ++= Seq(
javaJdbc,
javaEbean,
cache,
filters
)
logBuffered in Test := false
testOptions += Tests.Argument(TestFrameworks.JUnit, "-v")
testOptions += Tests.Argument("fullStackTrace","true")
traceLevel := 50
Run Code Online (Sandbox Code Playgroud)
有谁可以帮助我吗?我正在使用Typesafe激活器(播放2.2.2).谢谢
Ton*_*Day 13
在Play 2.3.2中,可以使用以下-a选项进行操作build.sbt:
testOptions += Tests.Argument(TestFrameworks.JUnit, "-a")
Run Code Online (Sandbox Code Playgroud)
我用:
testOptions += Tests.Argument(TestFrameworks.JUnit, "-v", "-q", "-a")
Run Code Online (Sandbox Code Playgroud)
因为这提供了测试开始/完成的消息(-v)并抑制了传递的测试(-q)的日志记录.
所有可用选项都可以在SBT JUnit界面中找到:
-v 在日志级别"info"而不是"debug"上记录"test run started"/"test started"/"test run finished"事件.-q 抑制stdout成功测试.Stderr通常会打印到控制台.Stdout被写入缓冲区并在测试成功时被丢弃.如果失败,则将缓冲区转储到控制台.由于Java中的stdio重定向是一个糟糕的问题(System.setOut()通过本机代码更改静态最终字段System.out),这可能不适用于所有方案.Scala拥有自己的控制台,具有理智的重定向功能.如果在类路径上检测到Scala,则junit-interface也会尝试重新路由scala.Console的stdout.-n 即使sbt报告它们受支持,也不要在输出中使用ANSI颜色.-s 尝试解码堆栈跟踪和测试名称中的Scala名称.如果类路径上没有匹配的Scala库,则静默回退到未解码的名称.-a 显示AssertionErrors的堆栈跟踪和异常类名称(由JUnit中的所有assert*方法抛出).如果没有此选项,失败的断言不会打印堆栈跟踪或"java.lang.AssertionError:"前缀.-c 不要为任何消息打印异常类名称前缀.使用此选项,仅显示getMessage()的结果以及堆栈跟踪.+v 关闭-v.优先于-v.+q 关掉-q.优先于-q.+n 关掉-n.优先于-n.+s 关掉-s.优先于-s.+a 关掉-a.优先于-a.+c 关掉-c.优先于-c.--ignore-runners=<COMMA-SEPARATED-STRINGS> 如果此列表中包含Runner类名,则使用@RunWith注释忽略测试.默认值为org.junit.runners.Suite.--tests=<REGEXPS> 仅运行名称与指定正则表达式之一匹配的测试(在逗号分隔的列表中).不匹配的测试将被忽略.只匹配单个测试用例名称,而不是测试类.示例:对于测试MyClassTest.testBasic(),仅匹配"testBasic".使用sbt的test-only命令来匹配测试类.-Dkey=value在测试运行期间临时设置系统属性.测试结束后,该属性将恢复为之前的值.请注意,系统属性对于整个JVM是全局的,并且可以以非事务方式进行修改,因此您应该以串行方式运行测试,而不是并行执行任何其他依赖于已修改属性的任务.--run-listener=<CLASS_NAME>一个(用户定义的)类,它扩展了org.junit.runner.notification.RunListener.创建此类的实例并将其添加到JUnit Runner,以便它将接收运行事件.有关更多信息,请参见RunListener.注意:这使用了test-classloader,因此需要在src/test或src/main中定义类,或者将其作为测试或编译依赖项包含在内--include-categories=<CLASSES> 应包含的逗号分隔的类别类名列表.仅运行具有一个或多个这些类别的测试.--exclude-categories=<CLASSES> 以逗号分隔的应排除的类别类名列表.不会运行与这些类别中的一个或多个匹配的测试.| 归档时间: |
|
| 查看次数: |
1910 次 |
| 最近记录: |