Participants: | |
---|---|
Project Manager | |
Java Lead |
Goal and requirements
It is necessary to divide the KARATE modules by the name of the teams so that the notification comes in a separate slack channel (team's channel).
For this, it is proposed to change the package names in accordance with Team vs module responsibility matrix or mention several teams in package name in case several teams (except for the module owner team) are developing features in the corresponding module.
Requirements
- Rename package from domain to team name (for example: spitfire, falcon, folijet and etc) or hyphenated names of several teams involved (for example, spitfire-falcon-folijet) and after dot you should add domain, for example: mod-inventory, mod-source-record-storage and etc)
- Example: prokopovych.mod-inventory
- Rename path to features in the main class where we run all features. For example: ModTagsApiTest has field TEST_BASE_PATH and need to change domain to spitfire.
Rename package
First of all, change package name from domain to your team (teams). As example, we consider mod-tags:
NOTE: if your features are located in src folder, you also can change name as previous one:
Rename path to features
In the main class need to change path to all features from domain to your team (teams), for example:
-
Build and run test
Run the next command:
- mvn clean install
- mvn test -Dtest=ModTagsApiTest -pl mod-tags -DargLine="-Dkarate.env=testing"
P.S. You also can run test via idea:
Verify karate-report
In the generated folder target you can find karate-summary-json.txt. In this file you should check field packageQualifiedName, this property should have your team name, for example:
"packageQualifiedName":"spitfire.tags.features.tags"
4 Comments
Dmytro Tkachenko
Great work!
In development channel @Zak Burke mentioned another approach to storing teams: inside a file (potentially CONTRIBUTING.md). I personally like the idea of having a file with team names.
Probably if there is need to define team(s) on package level, some dedicated file could be introduced with predefined name ("teams.txt", "notify.txt" etc) and stored inside each package. In this file you just mention one or several teams that should be notified in case of package related test failures.
In case of complex package hierarchy, you can define team(s) on top package level to avoid placing it inside each sub-package(s).
Oleksandr Dekin
Thanks, Dmytro Tkachenko !
In development channel Anton Emelianov answered about separate file. From developer side - we can easy move team name to CONTRIBUTING.md, teams.txt or notify.txt, but for DevOps side - we should add information inside karate-summary-json.txt.
Also we can create custom reporting for generating cucumber reports and add custom property into karate-summary-json.txt, for example:
In this case, we shouldn't rename folder, but need to create custom reporting. And I am not sure can we add custom property to karate-summary-json.txt.
Sherzod Nurjonov
Hi Oleksandr Dekin ,
Could you please tell how we should use team names which consists of two or more words? (e.g Core Platform)
Thanks in advance
Oleksandr Dekin
Hello Sherzod Nurjonov
You should rename package with underscore like -
core_platform
For example: