LoginSignup
2
1

More than 5 years have passed since last update.

Spek2のgherkin形式でテストをスキップする

Posted at

Spek2をGherkin形式で書いててテストをスキップしたいが、公式でその実装がないっぽいので拡張関数で実現した

fun FeatureBody.Scenario(description: String, skip: Skip, body: ScenarioBody.() -> Unit) {
    delegate.group("Scenario: $description", skip = skip, defaultCachingMode = CachingMode.SCOPE, preserveExecutionOrder = true) {
        body(ScenarioBody(this))
    }
}

こんな拡張関数を追加すれば、 Scenario("スキップさせる", Skip.Yes("not impl")) とSkipを指定できるようになる。
ただし、 Skip.No を指定した場合、おそらくIntelliJのプラグインがパースに失敗して、
シナリオを指定しての実行ができなくなる。

object SkipTest : Spek({

    Feature("テストのスキップ") {
        Scenario("スキップしない", Skip.No) {
            Given("ほげ") {
            }

            When("ふが") {
            }

            Then("もげー") {
            }
        }

        Scenario("スキップさせる", Skip.Yes("not impl")) {
            Given("ほげ") {
            }

            When("ふが") {
            }

            Then("もげー") {
            }
        }
    }
})

上記のコードで実行すればこんな感じにignoreされる
image.png

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1