Skip to content

[Enhancement] Configure unit tests to run during CI action and set a goal for test coverage #96

@weklund

Description

@weklund

Describe Enhancement

Improve the reliability of IBind by revamping our current test suite, running those tests in CI, and collecting the code coverage so we can work towards a goal.

Things I'd like to cover and align with folks on in subsequent comments in this issue:

  1. Establish Clear Test Patterns. Implement a standard pattern for our unit and integration tests.

  2. Improve Test Coverage. Add tests for components we don't cover yet, particularly core client logic (ibind/base, ibind/client) and ibind/oauth, have robust unit and integration tests.

  3. Validate current tooling. Should we stick with unittest, or adopt pytest? Don't want to make a hasty decision here so happy to dive into it.

  4. Automate Testing in CI. Configure the GitHub Actions workflow to automatically run all tests in our PRs. This will be great to have better confidence that we have extensive testing of IBind, and those test suites run against all the python versions we support and both OSs.

  5. Implement Code Coverage Tracking. Integrate with Codecov.io (or a similar service) to monitor test coverage and identify untested code paths. Align on a coverage goal to slowly strive for.

Why?

  • Catch bugs earlier in the development cycle.
  • Provide greater assurance that changes don't break existing functionality.
  • Speed up development since Unit tests provide faster feedback.
  • Enhance maintainability, well-structured tests are easier to understand, modify, and debug IBind's implementation.
  • Help contributors with having clear testing practices and automated checks will lower the barrier for community contributions.

Will post specific ideas for each in below comments.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions