This is just a thought of reducing CI build time, currently takes more than 30 minutes. The main idea is to build a system Test Impact Analysis: a similar solution Use Test Impact Analysis - Azure Pipelines | Microsoft Learn and a blog to read more on this The Rise of Test Impact Analysis , The main idea is to run the affected files only due to changes to the service file. We have to first build a dependency graph b/w service and test files using the generated coverage report. We could enhace on the idea as well. would love to know about your thoughts on this
I like this! Of course, the real challenge is going to be figuring out a coherent way to build/maintain the dependency graph…
We have reasonably good e2e test coverage, but due to the very nature of “end-to-end”, there are a lot of things in the stack that might affect any particular test… I wonder what kind of tooling there is to support something like this for an Express/Angular stack?
@jkuester in cht-core how the coverage report is generated, using which tool? for example for java ecosystem jacoco file is generated after execution of tests which dynamically covers all the paths it went through the service files.
I think also one of the thing we have to think about on how to manage that dependency graph, where to store it? how frequent it needs to be changed?
We are using the venerable nyc for checking coverage in our unit tests. (Diana is actually adding hard coverage checks to ensure we have proper unit tests coverage.)
However, none of this applies to our e2e or integration tests (which are the ones that take the majority of the CI runtime… ![]()
So how do we check coverage for integration tests? @diana is there a tool for this?
I am not aware of any tool that can achieve e2e test coverage reports.
We have two types of e2e tests: API integration tests, Sentinel integration tests and WebdriverIO frontend tests.
Apparently there are ways to add some form of coverage for both, this would be interesting to expore!
Yeah maybe we could start with API integration tests and check if it’s working correctly but what ways would you be suggesting?