Comments (4)
special test charm is half way between unit test and integration test
I disagree. It's perfectly fine to use test doubles in an integration test. What you are getting at sounds to me more like an end-to-end test, which while being valuable, is something that likely should live in the bundle repo, close to the final solution. Regardless, with those criteria, avalanche is a special test charm as well. 😛
if instead we can use existing charms, we should
This part I fully agree with, but not if it's not solving the problems we need it to address.
The developer does not have to bother if there is any other charm available to create his integration test with. The developer does not have to worry if some strange behaviour he is seeing is a problem with his charm under development or just a quirk of the other charm he happened to choose for his integration test.
I think you are both getting at the same thing here. We need to be able to test very particular conditions in our integration tests, and need a solid way to arrange that from the outside, and we don't want to take on additional maintenance burden unless it serves a purpose. However, I'm not sure we have the need of a full load generator for this scenario either.
I would suggest that once you're back from your vacation @balbirthomas, you and @sed-i sit down and have a look at your test charm, and see whether that behavior would be easily reproducible with avalanche as well.
If so, excellent - less for us to maintain. If not, still excellent - now we know.
from prometheus-k8s-operator.
I see no reason where there should not be functional or integration tests using more controlled test charms. Here are some of the benefits of tests in each repository using test charms
- The test charms can be instrumented in arbitrary ways there by allowing very controlled tests.
- The test charms can be designed to support a wide range of tests including, fuzzing, and detailed validation of state transitions.
- The test charms tests can be made to be more lightweight and be capable of being run individually thereby facilitating the charm development process while the developer is creating a new charm or adding new features to the charm.
- The tests charms support the creation of charm repositories that provide a self-contained validation of the functional behaviour of the charm irrespective of the current state of any other charm.
Finally I see no reason why such test charm based tests can not exist in addition to any bundle tests in the bundle repository.
from prometheus-k8s-operator.
- special test charm is half way between unit test and integration test
- having a single-purpose special charm is more difficult to maintain: if instead we can use existing charms, we should
from prometheus-k8s-operator.
Let us be honest here for any but the most trivial charms we have been creating special test charms during development or at least some of us have felt the need to do so. These special test charms are fairly trivial to create and hardly take any time. The are far more than a unit test. The charm under test is being tested with a real deployed workload unlike a unit tests. They test exactly the same functionality an integration test would. And they provide the developer true validation and insight into the behaviour of his charm while he is developing the charm. The developer does not have to bother if there is any other charm available to create his integration test with. The developer does not have to worry if some strange behaviour he is seeing is a problem with his charm under development or just a quirk of the other charm he happened to choose for his integration test.
from prometheus-k8s-operator.
Related Issues (20)
- Add `receive-ca-cert` relation HOT 1
- Not able to pass a CA certificate in "tls_config" parameter HOT 2
- The workload is on https, but traefik still thinks it's http
- Add `params` to scrape job configuration
- Inconsistent scrape interval in Prometheus and Grafana breaks graphs with `$__rate_interval`
- hardcoded scape_interval=1m is causing more issues than solving problems HOT 4
- The charm size got 10x bigger due to cygrpc.cpython-38-x86_64-linux-gnu.so with debug symbols HOT 2
- Non-functional deployment with latest/edge - /cos-prometheus-0: 404 Not Found HOT 3
- After removing the relation with scrape-inteval-config old alert rules are still in Prometheus HOT 5
- Alert rules from different sources can overwrite each other HOT 13
- Broken scrape jobs can get past our checks HOT 1
- Stuck on BlockedStatus even after `maximum_retention_size` config option changed to valid
- Out of order sample from remote write HOT 3
- [MetricsEndpointAggregator] Group name should be rendered using unit name, not app name HOT 2
- Topology labels are overridden in MetricsEndpointProvider HOT 1
- "certificates-relation-changed" hook failed during deployment HOT 4
- Set external URL as a Grafana Data Source HOT 4
- cannot stop service: promtail service does not exist HOT 1
- Internal url is rendered as the "source" in alerts HOT 2
- Charm reports permission denied when setting relation data HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from prometheus-k8s-operator.