DEV Community

Discussion on: Pull Requests Are Slowing You Down

Collapse
 
darkain profile image
Vincent Milum Jr

At my org, we took an easier approach IMO. Anyone can run integration tests on any branch locally. Because of this, integration tests are generally ran pre-commit. The feedback loop is about as fast as it can get. :) Additionally, we've segmented out the code so libraries are wholly independent with their own unit tests, and doing so means less overall integration tests needed for the whole application. By doing these splits, it also significantly reduced the execution time of the testing frameworks (library unit tests complete in ~1-2 seconds, full integration testing is less than 1 minute). Making them fast means they can run more often with less burden to developers.

Collapse
 
caleb15 profile image
Caleb Collins-Parks

What about when a dev pushes their code to Github and CI activates? Does CI run the full suite of tests?

Collapse
 
bentorvo profile image
Ben Brazier

What about the integration tests that rely on deployed infrastructure? Those are the most important and often overlooked integration tests.

Collapse
 
m4rcoperuano profile image
Marco Ledesma

One recent talk I’ve discovered talked about doing away with end to end tests entirely. They tend to be flakey, constantly being updated, and more time is spent fixing them then the actual value they provide. Here’s the talk that has me somewhat convinced to move away from end to end tests, and rely on frequent deployments. pushtrain.club/

Collapse
 
darkain profile image
Vincent Milum Jr

In my particular case, integration tests can and do run on development infrastructure. We have parallel nearly identical infrastructure for development and production, with the main difference being production is scaled up to more nodes in more regions, but otherwise they're the same.

Thread Thread
 
bentorvo profile image
Ben Brazier • Edited

So the local branches are deploying development infrastructure per branch, all branches are deploying to the same infrastructure, or you aren't deploying the software before integration testing it?