Proposal: pytest-cov should do less
I've been working in the pytest-cov code recently to get it to support coverage.py 5.0 (pull request: #319), and also reviewing #330. The problems that have come up have brought me to a conclusion: pytest-cov does too many things. The current code attempts to be a complete UI for coverage. I think this is a mistake. Pytest-cov should limit itself to those functions that can only be done within a pytest plugin. In particular, the reporting options of pytest-cov add no value over just using coverage directly to generate reports. Pytest-cov is no one's passion project. There are a few of us that would like to move it forward, but want to do it efficiently. Removing functionality from pytest-cov would make it easier to maintain. If we keep to the current model of pytest-cov being a complete UI for coverage.py, then every time something is added to coverage.py, the pytest-cov plugin needs to be updated. As an example, we just added a new report type to coverage.py (JSON). Why do we need to add options to pytest-cov to support it? Pytest is a test runner. Its job is to run tests. The pytest-cov plugin should limit itself to integrating the run phase of coverage into the test running process. Reporting is a separate step that is better separately. The current design leads to tortured option syntax in an attempt to squeeze everything into the pytest command line. There's no need. Remove options that aren't related to running, and let some options be specified in conf
Posted by nedbat on Sep 10, 2019, 2:39 PM
Tags
Related issues
- > when it's much easier to just build a nice website using JavaScript I'm currently building a web-based tool that uses dynamic forms fo...
- Going forward with the TileMap editor
- Just remember that many popular stacks are due to marketing; often the marketing pushes you in ways that are highly profitable for whoeve...
- Set width and height attributes to img automatically
- Proposal: WinUI 3 rust support
Raise real-world problems, find people facing the same issue, and discuss solutions.3,500 issues0 comments
ux (Marketing)
> when it's much easier to just build a nice website using JavaScript I'm currently building a web-based tool that uses dynamic forms fo...
Going forward with the TileMap editor
Just remember that many popular stacks are due to marketing; often the marketing pushes you in ways that are highly profitable for whoeve...
Set width and height attributes to img automatically
Proposal: WinUI 3 rust support
Proposal: pytest-cov should do less
Proposal: pytest-cov should do less
I've been working in the pytest-cov code recently to get it to support coverage.py 5.0 (pull request: #319), and also reviewing #330. The problems that have come up have brought me to a conclusion: pytest-cov does too many things. The current code attempts to be a complete UI for coverage. I think this is a mistake. Pytest-cov should limit itself to those functions that can only be done within a pytest plugin. In particular, the reporting options of pytest-cov add no value over just using coverage directly to generate reports. Pytest-cov is no one's passion project. There are a few of us that would like to move it forward, but want to do it efficiently. Removing functionality from pytest-cov would make it easier to maintain. If we keep to the current model of pytest-cov being a complete UI for coverage.py, then every time something is added to coverage.py, the pytest-cov plugin needs to be updated. As an example, we just added a new report type to coverage.py (JSON). Why do we need to add options to pytest-cov to support it? Pytest is a test runner. Its job is to run tests. The pytest-cov plugin should limit itself to integrating the run phase of coverage into the test running process. Reporting is a separate step that is better separately. The current design leads to tortured option syntax in an attempt to squeeze everything into the pytest command line. There's no need. Remove options that aren't related to running, and let some options be specified in conf
Comments (0)
No comments yet. Start the discussion.