Feature: some scenarios
  Scenario: failing    # formatter-tests/features/some_scenarions_including_failing.feature:3
    Given passing step # fmt_output_test.go:116 -> github.com/cucumber/godog_test.passingStepDef
    When failing step  # fmt_output_test.go:132 -> github.com/cucumber/godog_test.failingStepDef
    step failed
    Then passing step  # fmt_output_test.go:116 -> github.com/cucumber/godog_test.passingStepDef
  Scenario: pending   # formatter-tests/features/some_scenarions_including_failing.feature:8
    When pending step # fmt_output_test.go:130 -> github.com/cucumber/godog_test.pendingStepDef
      TODO: write pending definition
    Then passing step # fmt_output_test.go:116 -> github.com/cucumber/godog_test.passingStepDef
  Scenario: undefined # formatter-tests/features/some_scenarions_including_failing.feature:12
    When undefined
    Then passing step # fmt_output_test.go:116 -> github.com/cucumber/godog_test.passingStepDef
--- Failed steps:
  Scenario: failing # formatter-tests/features/some_scenarions_including_failing.feature:3
    When failing step # formatter-tests/features/some_scenarions_including_failing.feature:5
      Error: step failed
3 scenarios (1 failed, 1 pending, 1 undefined)
7 steps (1 passed, 1 failed, 1 pending, 1 undefined, 3 skipped)
0s
You can implement step definitions for undefined steps with these snippets:
func undefined() error {
	return godog.ErrPending
}
func FeatureContext(s *godog.Suite) {
	s.Step(`^undefined$`, undefined)
}