Split and prioritize integration tests execution#3189
Split and prioritize integration tests execution#3189dottorblaster wants to merge 3 commits intoapache:mainfrom
Conversation
|
@iilyak I need your opinion here 😄 actually I discovered that it's not possible to run The only solution I found was adding a Do you think this is feasible? Pending tests are like less of ten, so I'd follow this approach and do some PRs following this trying to resolve those pending cases, just to get rid of this stuff. |
|
The approach is appropriate. However there is a little problem. Some tests would run twice. For example, I think we need to:
|
|
Absolutely, I noticed a couple hours ago, my bad. Tomorrow I'll apply fixes to the Makefile and commit the different |
71a9c04 to
c4a122a
Compare
f7b8405 to
f52037c
Compare
1c01924 to
aad64ed
Compare
jjrodrig
left a comment
There was a problem hiding this comment.
I think that with this change we are losing the quorum related tests.
| elixir-degraded-cluster: export MIX_ENV=integration | ||
| elixir-degraded-cluster: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1 | ||
| elixir-degraded-cluster: devclean | ||
| @dev/run "$(TEST_OPTS)" -a adm:pass -n 1 \ |
There was a problem hiding this comment.
@dottorblaster this configuration is the same that the elixir-single-node option. To define a degraded cluster it is required to startup multiple nodes and then stop some of them. I included this option in the run script for the without_quorum testing.
I think that we should keep these options to launch a degraded cluster
@dev/run -n 3 --degrade-cluster 2 ...
There was a problem hiding this comment.
Bloody hell you're right, sorry man
| @dev/run "$(TEST_OPTS)" \ | ||
| -a adm:pass \ | ||
| -n 1 \ | ||
| .PHONY: elixir-cluster |
There was a problem hiding this comment.
I think that this is not enough for running the with_quorum tests. These tests require a degraded cluster with quorum as some of the test are checking the quorum override behaviour of some operations. We need a degraded cluster that keeps the quorum for this.
@dev/run -n 3 --degrade-cluster 1 ...
There was a problem hiding this comment.
As above :) Sorry!
|
@jjrodrig theoretically they should be inside the cluster and degraded_cluster categories, I'm having a hard time making the test suite run on Jenkins for some reason though |
03369ea to
fec646f
Compare
I didn't know that inability to skip tests is what motivated you for this work. I implemented #3286 as an additional target to call instead of The idea was that CouchDB CI would use your work. We possibly use different tags for things which are not implemented yet for FDB based CouchDB. Maybe
However these new tags might interfere with Again the #3286 switches to The deficiency of #3286 is the need to maintain |
|
Hm. I'll think about that, honestly I was struggling with this because the
Mix is not the right place for this discussion to happen, maybe you'll want to speak to the folks maintaining ExUnit :-D nonetheless I think they are pretty much the same team, you're right. Anyway your fix makes CouchDB have a much wider coverage because you include test modules in a very specific way, while Also I don't know about that, but merry XMas! :D |
|
Well, this effort didn't lead to anything so I'm honestly closing this 😅 |
Overview
This PR is a follow-up to #3110 and a should allows us to close #1885.
We want to adopt a fail-fast approach so we split tests in several categories and we're running them from the fastest one to the slowest.
Testing recommendations
If
make elixiris ok, then you'll probably be ok. I didn't know if there would be a better way of handling these modifications in the Makefile.Related Issues or Pull Requests
#3110, #1885
Checklist
rel/overlay/etc/default.ini