There are already some test folders in the che root - e.g. e2e, selenium. Other tests are about to be added here (e.g. load tests) so the root will be quite chaotic.
We decided to separate tests related stuff to the tests folder. There is a POC hierarchy that should be created:
- assembly
- ...
- tests
- e2e
- functional (previous selenium)
- performance
- jenkins
The proper name of folders is not final. All ideas on naming are welcome, it would be nice to have that named properly.
As a part of this issue, there would be also changes in pom.xml and build scripts - don't forget! :)
I think leaving selenium is ok (but having it as "functional" works for me as well :-D)
performance sounds ok (I don't have any strong opinion here)
What we could IMO change is jenkins to something like .infra. Make it a "hidden folder" to emphasize it doesn't contain any tests, but only some infrastructure stuff (jenkinsfiles now... could be possibly more in the future...)
Thank you for your opinion. I would vote for functional because e2e and performance are types of tests (as functional do) but selenium is type of technology used.
I absolutely agree with your idea about hidden .infra folder.
Java selenium tests are actually truly represent E2E flow - from entrance end (that is login) to final end, that is removal of test workspace
In fact, both old and new tests are E2E functional selenium tests. The only difference is language being used: it's java for old one and typescript for newer one:
e2e -> typescript -> (Happy path, Vert.x, OperatorHub installation, ..)
e2e -> java -> (dashboard, factories, oauth, ...)
I don't like having technology as a main name of tests, but I'm afraid I can not come up with something better now. I would add at least the word test to the technology. So the final structure should be like this:
- e2e
- typescript-tests
- java-tests
- performance
- .infra
IMHO it could be shorten to "typescript" and "java" so as they are subdirectory of tests directory.
In that case, when referencing typescript the folder structure is not obvious and it can be misleading because it seems like it is some package including just typescript language. E.g. in a build script it can seem like the typescript language utils are built, not typescript tests.
Just one last thing that comes on my mind is leaving e2e image as it is and renaming selenium to legacy-e2e as far as those Java tests should not be extended in future. @dmytro-ndp WDYT?
Agree with the next project structure:
- e2e
- legacy-e2e
- performance
- .infra
Most helpful comment
I don't like having technology as a main name of tests, but I'm afraid I can not come up with something better now. I would add at least the word
testto the technology. So the final structure should be like this: