Как получить название в настоящее время запущенное тест в Споке?

StackOverflow https://stackoverflow.com/questions/8365491

  •  27-10-2019
  •  | 
  •  

Вопрос

В 3 -м юните я мог бы получить название в настоящее время проводящего тестирования так:

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 или выше.

Другие советы

Для Spock 1.0-Groovy-2.4 вы можете попробовать:

def "Simple test"() {

    expect:
    specificationContext.currentIteration.name == "Simple test"
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top