在JUnit 3中,我可以得到当前运行的测试的名称,如下所示:
public class MyTest extends TestCase {
public void testSomething() {
assertThat(getName(), is("testSomething"));
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么在spock中这样做?我想将测试名称用作共享资源中的密钥,以便测试不会相互干扰.
Pet*_*ser 19
一种解决方案是利用JUnit的TestName规则:
import org.junit.Rule
import org.junit.rules.TestName
class MySpec extends Specification {
@Rule TestName name = new TestName()
def "some test"() {
expect: name.methodName == "some test"
}
}
Run Code Online (Sandbox Code Playgroud)
这需要JUnit 4.7或更高版本.
小智 7
对于spock 1.0-groovy-2.4你可以尝试:
def "Simple test"() {
expect:
specificationContext.currentIteration.name == "Simple test"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3230 次 |
| 最近记录: |