-
Notifications
You must be signed in to change notification settings - Fork 11
v2 for real #35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
v2 for real #35
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces gunit/v2, a major revision of the testing framework with improved design and error handling. The v2 implementation is isolated in a /v2 subdirectory to maintain backward compatibility with v1 code, allowing existing projects to continue using v1 while new projects can adopt v2 from the start.
Key changes:
- Enhanced test runner that supports both unit tests (parallel execution with fresh fixtures) and integration tests (shared fixtures)
- Assertions now return actual error values instead of just failing tests, enabling better error handling patterns
- Comprehensive assertion library with clear error reporting and stack traces
Reviewed changes
Copilot reviewed 94 out of 94 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| v2/go.mod | Defines the v2 module requiring Go 1.25 |
| v2/gunit.go | Core test runner with fixture lifecycle management |
| v2/options.go | Configuration options for test execution modes |
| v2/fixture.go | Base fixture type with assertion helpers |
| v2/assert/should/*.go | Assertion library with various comparison functions |
| v2/examples/bowling_game*.go | Example bowling game implementation and tests |
| v2/assert/should/internal/ | Third-party libraries for diff/render functionality |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Once thought to be merely a mythical creature,
gunit/v2is here, more real than ever.NOTE: The
v2module has been defined in its very own/v2subdirectory so that thev1code can remain here with continuing support. There's no need to portv1test fixtures tov2(nor am I recommending that) but new projects should usev2from the start.