Integration testing for downstream dependencies
See original GitHub issueWe need a new Continuous Integration configuration to launch the tests of some popular downstream projects.
Candidate projects:
- xgboost and or lightgbm as very popular third party libraries
- skorch
- imbalanced-learn not necessarily as popular as others but with high use of sklearn’s API
- autosklearn?
- any other suggestion?
Those test would not be run in PRs unless we use a specific tag in the commit message for instance. This test setup would be run by maintainers in the release branches.
We do something similar in the cloudpickle project with the [ci downstream]
commit tag:
https://github.com/cloudpipe/cloudpickle/blob/master/.travis.yml#L37-L70
For scikit-learn this would probably need a bit more scripting as the build is more complex than for a pure python project such as cloudpickle but the general idea would be the same.
Issue Analytics
- State:
- Created 4 years ago
- Comments:12 (12 by maintainers)
Top Results From Across the Web
Integration Testing: What is, Types with Example - Guru99
Integration Testing is defined as a type of testing where software modules are integrated logically and tested as a group.
Read more >Mocking Dependencies on Component Testing
A technical primer on using the Cohn version of the Testing Pyramid on a microservices architecture, with code examples to help.
Read more >6 best practices for integration testing with continuous ...
How integration testing works with CI and DevOps · Run integration tests until something fails · Determine what needs to be added or...
Read more >See Upstream and Downstream Dependencies During an ...
To see incident statuses of your service's upstream and downstream dependencies, click the service in the Service Catalog, and in the service details...
Read more >The do's and don'ts of integration testing | syrett.blog
Because integration tests often use fake or nonsensical data, tests on one application can often lead to unanticipated errors in downstream ...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Frankly the downstream packages should be doing this integration testing by testing various use cases and checking with scikit-learn master. We should be encouraging downstream packages to include such integration tests (e.g. various usages of their estimators with grid search).
But it’s reasonable that we at least run a suite of integration tests as part of a release cycle. Putting this in Azure makes it easier for our maintainers.
I don’t mind if we also run a Cron job but then we will have to deal with more false alarms (e.g. downstream test suites failing due to poor or delayed management of their other dependencies).
I think that we can address the following when we have a more granular
check_estimator
to be sure that we are testing the right things for these third-party libraries. xref: https://github.com/scikit-learn/scikit-learn/issues/16241