在JUnit 3中,我能得到這樣的當前運行測試的名稱:如何獲取spock當前正在運行的測試的名稱?
public class MyTest extends TestCase {
public void testSomething() {
assertThat(getName(), is("testSomething"));
}
}
如何在斯波克做到這一點?我想將測試名稱用作共享資源中的一個鍵,以便測試不會互相干擾。
在JUnit 3中,我能得到這樣的當前運行測試的名稱:如何獲取spock當前正在運行的測試的名稱?
public class MyTest extends TestCase {
public void testSomething() {
assertThat(getName(), is("testSomething"));
}
}
如何在斯波克做到這一點?我想將測試名稱用作共享資源中的一個鍵,以便測試不會互相干擾。
一種解決方案是利用JUnit的測試名規則:
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"
}
}
此,需要JUnit 4.7或更高版本。
石破天驚1.0 Groovy的2.4,你可以嘗試:
def "Simple test"() {
expect:
specificationContext.currentIteration.name == "Simple test"
}
與「1.0-groovy-2.4」相同的不錯作品。 – prayagupd
只是想知道..什麼是該用例? –
感謝它爲我工作,我們有特殊要求 – Pushkar
是否有某種方法可以從腳本設置'def setup'和'def cleanup'之後獲得名稱? – will