编译以下代码段时:
class MyTest {
@org.junit.Test
def `test test`() {
}
}
Run Code Online (Sandbox Code Playgroud)
方法test test正在以字节码为单位test$u0020test.
为什么会发生这种情况,如何禁用?
根据JVM规范,空间是方法名称的有效标识符.此外,在Scala语言规范中没有提到这种编码.此外,其他JVM语言(如Groovy和基于Groovy的Spock Framework)不对空间进行编码.
为什么我需要这个:人性化的JUnit测试名称和测试报告.
Java 1.8.0_45,Scala 2.11.6
小智 4
看看https://github.com/sbt/junit-interface
-s 尝试解码堆栈跟踪和测试名称中的 Scala 名称。如果类路径上没有匹配的 Scala 库,则静默回退到未解码的名称。
所以我们可以说
testOptions += Tests.Argument(TestFrameworks.JUnit, "-q", "-v", "-s")
Run Code Online (Sandbox Code Playgroud)
在build.sbt文件中,然后是一个方法
def `get one hundred if fifty plus fifty started` {}
Run Code Online (Sandbox Code Playgroud)
测试结果显示
[info] Test ScalaTest.get one hundred if fifty plus fifty started
Run Code Online (Sandbox Code Playgroud)
不是
[info] Test ScalaTest.get$u0020one$u0020hundred$u0020if$u0020fifty$u0020plus$u0020fifty started
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
694 次 |
| 最近记录: |