# `Lockstep.Runner`
[🔗](https://github.com/b-erdem/lockstep/blob/v0.1.0/lib/lockstep/runner.ex#L1)

Runs a controlled test body N times. On bug: saves the trace and
raises `Lockstep.BugFound` with a formatted schedule.

# `run`

```elixir
@spec run(
  (-&gt; any()),
  keyword()
) :: :ok
```

# `try_iteration`

```elixir
@spec try_iteration(
  (-&gt; any()),
  keyword()
) :: {:pass, list()} | {:fail, term(), list()}
```

Run a single iteration and return the outcome instead of raising.

Useful for tools that need to introspect bug-finding (e.g.,
`Lockstep.Shrink`) rather than fail the surrounding test.

Same options as `run/2` but `:iterations` is ignored (always 1).
Returns `{:pass, trace}` or `{:fail, reason, trace}`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
