Closed evdokimovs closed 3 years ago
Add Medea E2E tests runner (#178)
- rename old E2E tests as integration tests
- implement Cucumber tests runner for new E2E tests
- make 'medea-control-api-mock' protocol structures public
- impl E2E test scenarios for Member joining
- upd CI pipeline to run new E2E tests in Chrome and Firefox
@evdokimovs why we use e2e/src/
instead of tests/e2e/
?
@tyranron ,
@evdokimovs why we use
e2e/src/
instead oftests/e2e/
?
На мой взгляд, если положить эти тесты в /tests/e2e
, то будет создаваться ощущение, что тесты относятся к крейту medea
, а не к связке medea
+ medea-jason
, поэтому я решил выделить их в отдельный крейт.
@tyranron ,
Я вспомнил еще одну проблему держания тестов в /tests/e2e
. У нас достаточно много зависимостей у интеграционных и E2E тестов, при этом они практически не пересекаются. Раскидать по разным feature
dev зависимости нельзя, и поэтому нам придется для интеграционных тестов компиллить зависимости, которые нужны только для E2E тестов, а для E2E тестов, соответственно, наоборот.
Плюс нам придется использовать две версии tokio для тестов. E2E тестам нужна версия v1.1
, а интеграционным v0.2
, из-за этого может возникнуть путаница, когда в E2E тестах кто-нибудь по привычке начнет писать tokio::foo::bar
и попадет на версию v0.2
вместо v1.1
.
Подход с ракидыванием тестов по разным крейтам, впринципе, применяется. Как пример, крейт ndarray
у которого тесты раскиданы по крейтам (blas-tests
, numeric-tests
, serialization-tests
).
cc @alexlapa
UPD: Поправил опечатку с версиями tokio.
@tyranron , @evdokimovs ,
Я значимых проблем в текущем project layout'е не вижу. У нас тут и так мультипрджект репа, так что небольшие отклонения от привычного лэйаута понятны и позволительны.
Плюс нам придется использовать две версии tokio для тестов.
Несколько преувеличиваете проблемность этого варианта. Сразу в Cargo.toml
обзываете их как tokio_1
и tokio_02
, и все это дело можно вполне грамотно организовать. Ну это, конечно, если принципиально чтобы все лежало в /tests
. На созвоне обсудим - быстрее будет.
E2E тестам нужна версия v0.2, а интеграционным v1.1
*Наоборот.
Synopsis
This PR adds runner for the Cucumber E2E tests.
Also in this PR was added simple test scenarios for
Room
joining.Solution
Checklist
Draft:
prefixk::
labels appliedDraft:
prefix is removed