Skip to content

chore: migrate the test suite to Errata - #957

Open
david-christiansen wants to merge 6 commits into
test-framework-1from
test-framework-2
Open

chore: migrate the test suite to Errata#957
david-christiansen wants to merge 6 commits into
test-framework-1from
test-framework-2

Conversation

@david-christiansen

Copy link
Copy Markdown
Collaborator

This rearchitects our test suite into a proper testing framework. Before, our tests were all essentially ad hoc. Each kind of test would be an IO action that might throw, and there were some rough conventions, but output reporting was inconsistent and sometimes hard to understand. Tests were noisy as well, which made it hard to find reasons for failure at a glance.

Now the suite runs on Errata: lake test discovers every @[test] in the package, reports results uniformly, and CI displays the JUnit XML report.

This rearchitects our test suite into a proper testing framework. Before, our
tests were all essentially ad hoc. Each kind of test would be an IO action
that might throw, and there were some rough conventions, but output reporting
was inconsistent and sometimes hard to understand. Tests were noisy as well,
which made it hard to find reasons for failure at a glance.

Now the suite runs on Errata: `lake test` discovers every `@[test]` in the
package, reports results uniformly, and CI displays the JUnit XML report.
Fork pull requests receive a read-only token, so publishing a check run
fails; those runs get results from the job summary and artifact instead.
The child inherits stdio so a hang in CI shows how far the LSP suite
got instead of a killed job with no output.
The lake test invocations pass --wfail, so a typo in an option or an
undiscovered test module fails the run instead of warning on stderr in
a place nobody will see it.
The response that failed a predicate rides along as assertion detail,
and the local expects-an-error helper gives way to assertThrowsIO.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant