Skip to content
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

Testing infrastructure #58

Open
sonro opened this issue Dec 19, 2022 · 1 comment
Open

Testing infrastructure #58

sonro opened this issue Dec 19, 2022 · 1 comment
Assignees
Labels
tests Testing

Comments

@sonro
Copy link
Collaborator

sonro commented Dec 19, 2022

The current testing infrastructure is lacking. We have many similar functions: dotenv, from_filename, from_path, from_read and their override and iter variants; but only the dotenv function is being tested for expected behaviour (multiline comments, BOM ignoring etc). I believe having these tests on each function is important to avoid future regressions and ensure the stability of the crate.

We could simply add these tests for each function but it would create an unmaintainable mess of the tests folder. Currently, each test must be in its own file (process) to avoid variable collisions (as the tested functions alter the process environment). Moreover, the output from cargo test will get even more unwieldy that it currently is.

I prepose a 2-part solution:

  1. Create a test harness that can run multiple tests in the same process. (DONE test: create test harness with locked environment #59)
  2. Create a collection of abstracted checks to run against each public function and their variants.

The second part is a bit harder: we want it to be easy to add more checks AND easy to add the checks to a new public function. They should also be easy to change.

@allan2
Copy link
Owner

allan2 commented Dec 20, 2022

Sounds good! Thanks for taking this on.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tests Testing
Projects
None yet
Development

No branches or pull requests

2 participants