Как узнать имя запущенного теста в споке? - PullRequest
15 голосов
/ 03 декабря 2011

В JUnit 3 я мог получить имя запущенного в данный момент теста, например:

public class MyTest extends TestCase {
    public void testSomething() {
        assertThat(getName(), is("testSomething"));
    }
}

Как мне это сделать в споке?Я хотел бы использовать имя теста в качестве ключа в общем ресурсе, чтобы тесты не мешали друг другу.

Ответы [ 2 ]

19 голосов
/ 03 декабря 2011

Одним из решений является использование правила TestName 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 или выше.

7 голосов
/ 11 мая 2017

Для спока 1.0-groovy-2.4 вы можете попробовать:

def "Simple test"() {

    expect:
    specificationContext.currentIteration.name == "Simple test"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...