# bddsync
Tools to synchronize BDD files with test management tools like Jira-Xray
## Setting Up
Place a file named `bddfile.yml` in project root directory. Following this example:
``` yaml
version: <bddfile_version (example=1)>
framework: <framework (example=behave)>
features: <features_root_folder (example=features/)>
result: <result_file_path (example=output/result.json)>
url: <jira_base_url (example=https://jira.xxx.com)>
test_repository: <test_repository_type (example=xray)>
test_project: <test_project_id (example=ABC)>
test_plans:
<tracked_test_plan_tag_1>: <tracked_test_plan_id_1 (example=ABC-123)>
<tracked_test_plan_tag_2>: <tracked_test_plan_id_2 (example=ABC-321)>
...
test_sets:
<tracked_test_sets_tag_1>: <tracked_test_sets_id_1 (example=ABC-456)>
<tracked_test_sets_tag_2>: <tracked_test_sets_id_2 (example=ABC-654)>
...
test_environments:
<test_environments_alias_1>: <test_environments_id_1 (example=INT)>
<test_environments_alias_2>: <test_environments_id_2 (example=PRO)>
...
fields:
test_repository_path: <test_repository_path_field (example=customfield_12)>
test_plans: <test_plans_field (example=customfield_34)>
execution_test_plans: <execution_test_plans_field (example=customfield_56)>
execution_test_environments: <execution_test_environments_field (example=customfield_78)>
execution_fix_versions: fixVersions
required:
- <required_field_1 (example=execution_test_environments)>
- <required_field_2 (example=execution_fix_versions)>
...
```
In each use, bddsync ask for credentials. To avoid this behaviour, set the environment variables
`TEST_REPOSITORY_USER` and `TEST_REPOSITORY_PASS`
## Usage
Start with `bddsync` (with optional arguments) followed by the "command" from the list:
```
$ bddsync [-h] [--config CONFIG]
[-u TEST_REPOSITORY_USER] [-p TEST_REPOSITORY_PASS] COMMAND [-h] [...]
optional arguments:
-h, --help show this help message and exit
--config CONFIG alternative path to bddsync.yml
-u TEST_REPOSITORY_USER if not in environment
-p TEST_REPOSITORY_PASS
commands available:
test-repository-folders
features
scenarios
upload-features
upload-results
generate-docs
```
### test-repository-folders
It shows the list of repository folders and the corresponding id:
```
$ bddsync [...] test-repository-folders [-h] [--folder FOLDER]
optional arguments:
-h, --help show this help message and exit
--folder FOLDER folder to filter, else from root
```
### features
It shows the list of features and the corresponding path:
```
$ bddsync [...] features [-h]
optional arguments:
-h, --help show this help message and exit
```
### scenarios
It shows the list of scenarios and the corresponding features:
```
$ bddsync [...] scenarios [-h]
optional arguments:
-h, --help show this help message and exit
```
### upload-features
Updates the test repository according to these guidelines:
- Tags will be repaired and reordered, (1st line for tracked tags, 2nd line for other tags)
- New scenarios in code will be created in test repository and receive their ID in code
- Updated scenarios in code will be updated in test repository
- Deleted scenarios in code **won't be deleted** in test repository, the user deletes tests in repository manually
- Renamed scenario in code **won't be renamed** in test repository, **the user will be warned and process stops**,
the user renames tests in repository manually
- Tracked test plan tag added to a scenario will add the test to the test plan
- Tracked test plan tag removed from a scenario will remove the test from the test plan
- If there are duplicated test names, **the user will be warned and process stops**
- If scenario were duplicated while process (fixes in progress), **the user will be warned but process doesn't stop**,
the user deletes duplicated tests in repository manually
(Tip: for Xray, avoid create tests in test repository first, the tests may be duplicated with this process)
```
$ bddsync [...] upload-features [-h] feature [feature ...]
positional arguments:
feature can be a glob expression, use * as wildcard
optional arguments:
-h, --help show this help message and exit
```
### upload-results
Upload test results in cucumber format:
```
$ bddsync [...] upload-results [-h] [-n NAME] [-e ENVIRONMENTS] [-f FIX_VERSIONS]
[-p TEST_PLANS] [-l LABELS] result
positional arguments:
result
optional arguments:
-h, --help show this help message and exit
-n NAME, --name NAME name of test execution
-e ENVIRONMENTS, --environments ENVIRONMENTS comma separated environment names
-f FIX_VERSIONS, --fix-versions FIX_VERSIONS comma separated fix versions
-p TEST_PLANS, --test-plans TEST_PLANS comma separated test plans IDs
-l LABELS, --labels LABELS comma separated labels
```
### generate-docs
It shows the description of features and scenarios:
```
$ bddsync [...] generate-docs [-h]
optional arguments:
-h, --help show this help message and exit
```
Raw data
{
"_id": null,
"home_page": "https://github.com/Manzanero/bddsync",
"name": "bddsync",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "bdd, cucumber, behave, jira, xray, testing",
"author": "Alejandro Manzanero",
"author_email": "alejmans@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/91/74/beac9088cbd0666c14684ad8f28f66a6d2c188a2a4eb0497dfd3e714dea5/bddsync-1.2.2.tar.gz",
"platform": null,
"description": "# bddsync\r\n\r\nTools to synchronize BDD files with test management tools like Jira-Xray\r\n\r\n## Setting Up\r\n\r\nPlace a file named `bddfile.yml` in project root directory. Following this example: \r\n\r\n``` yaml\r\nversion: <bddfile_version (example=1)>\r\nframework: <framework (example=behave)>\r\nfeatures: <features_root_folder (example=features/)>\r\nresult: <result_file_path (example=output/result.json)>\r\n\r\nurl: <jira_base_url (example=https://jira.xxx.com)>\r\ntest_repository: <test_repository_type (example=xray)>\r\ntest_project: <test_project_id (example=ABC)>\r\n\r\ntest_plans:\r\n <tracked_test_plan_tag_1>: <tracked_test_plan_id_1 (example=ABC-123)>\r\n <tracked_test_plan_tag_2>: <tracked_test_plan_id_2 (example=ABC-321)>\r\n ...\r\n \r\ntest_sets:\r\n <tracked_test_sets_tag_1>: <tracked_test_sets_id_1 (example=ABC-456)>\r\n <tracked_test_sets_tag_2>: <tracked_test_sets_id_2 (example=ABC-654)>\r\n ...\r\n \r\ntest_environments:\r\n <test_environments_alias_1>: <test_environments_id_1 (example=INT)>\r\n <test_environments_alias_2>: <test_environments_id_2 (example=PRO)>\r\n ...\r\n \r\nfields:\r\n test_repository_path: <test_repository_path_field (example=customfield_12)>\r\n test_plans: <test_plans_field (example=customfield_34)>\r\n execution_test_plans: <execution_test_plans_field (example=customfield_56)>\r\n execution_test_environments: <execution_test_environments_field (example=customfield_78)>\r\n execution_fix_versions: fixVersions\r\n \r\nrequired:\r\n - <required_field_1 (example=execution_test_environments)>\r\n - <required_field_2 (example=execution_fix_versions)>\r\n ...\r\n```\r\n\r\nIn each use, bddsync ask for credentials. To avoid this behaviour, set the environment variables \r\n`TEST_REPOSITORY_USER` and `TEST_REPOSITORY_PASS`\r\n\r\n## Usage\r\n\r\nStart with `bddsync` (with optional arguments) followed by the \"command\" from the list:\r\n\r\n```\r\n$ bddsync [-h] [--config CONFIG] \r\n [-u TEST_REPOSITORY_USER] [-p TEST_REPOSITORY_PASS] COMMAND [-h] [...]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n --config CONFIG alternative path to bddsync.yml\r\n -u TEST_REPOSITORY_USER if not in environment\r\n -p TEST_REPOSITORY_PASS\r\n \r\ncommands available:\r\n test-repository-folders\r\n features\r\n scenarios\r\n upload-features\r\n upload-results\r\n generate-docs\r\n```\r\n\r\n### test-repository-folders\r\n\r\nIt shows the list of repository folders and the corresponding id:\r\n\r\n```\r\n$ bddsync [...] test-repository-folders [-h] [--folder FOLDER]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n --folder FOLDER folder to filter, else from root\r\n```\r\n\r\n### features\r\n\r\nIt shows the list of features and the corresponding path:\r\n\r\n```\r\n$ bddsync [...] features [-h]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n```\r\n\r\n### scenarios\r\n\r\nIt shows the list of scenarios and the corresponding features:\r\n\r\n```\r\n$ bddsync [...] scenarios [-h]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n```\r\n\r\n### upload-features\r\n\r\nUpdates the test repository according to these guidelines:\r\n - Tags will be repaired and reordered, (1st line for tracked tags, 2nd line for other tags)\r\n - New scenarios in code will be created in test repository and receive their ID in code\r\n - Updated scenarios in code will be updated in test repository\r\n - Deleted scenarios in code **won't be deleted** in test repository, the user deletes tests in repository manually\r\n - Renamed scenario in code **won't be renamed** in test repository, **the user will be warned and process stops**, \r\n the user renames tests in repository manually\r\n - Tracked test plan tag added to a scenario will add the test to the test plan\r\n - Tracked test plan tag removed from a scenario will remove the test from the test plan\r\n - If there are duplicated test names, **the user will be warned and process stops**\r\n - If scenario were duplicated while process (fixes in progress), **the user will be warned but process doesn't stop**,\r\n the user deletes duplicated tests in repository manually\r\n (Tip: for Xray, avoid create tests in test repository first, the tests may be duplicated with this process)\r\n\r\n```\r\n$ bddsync [...] upload-features [-h] feature [feature ...]\r\n\r\npositional arguments:\r\n feature can be a glob expression, use * as wildcard \r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n```\r\n\r\n### upload-results\r\n\r\nUpload test results in cucumber format:\r\n\r\n```\r\n$ bddsync [...] upload-results [-h] [-n NAME] [-e ENVIRONMENTS] [-f FIX_VERSIONS]\r\n [-p TEST_PLANS] [-l LABELS] result\r\n\r\npositional arguments:\r\n result\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n -n NAME, --name NAME name of test execution\r\n -e ENVIRONMENTS, --environments ENVIRONMENTS comma separated environment names\r\n -f FIX_VERSIONS, --fix-versions FIX_VERSIONS comma separated fix versions\r\n -p TEST_PLANS, --test-plans TEST_PLANS comma separated test plans IDs\r\n -l LABELS, --labels LABELS comma separated labels\r\n```\r\n\r\n### generate-docs\r\n\r\nIt shows the description of features and scenarios:\r\n\r\n```\r\n$ bddsync [...] generate-docs [-h]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n```\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Tools to synchronize BDD files with test management tools like Jira-Xray",
"version": "1.2.2",
"project_urls": {
"Download": "https://github.com/Manzanero/bddsync/archive/refs/tags/v1.2.2.tar.gz",
"Homepage": "https://github.com/Manzanero/bddsync"
},
"split_keywords": [
"bdd",
" cucumber",
" behave",
" jira",
" xray",
" testing"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9174beac9088cbd0666c14684ad8f28f66a6d2c188a2a4eb0497dfd3e714dea5",
"md5": "eb5fae8caf950cc654ed3a86afbc3c79",
"sha256": "fa302d2a9e9ca0668507d4215bcce00681ece2f8dc84d795ebe95cb95f31f851"
},
"downloads": -1,
"filename": "bddsync-1.2.2.tar.gz",
"has_sig": false,
"md5_digest": "eb5fae8caf950cc654ed3a86afbc3c79",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12868,
"upload_time": "2024-05-27T15:33:33",
"upload_time_iso_8601": "2024-05-27T15:33:33.269685Z",
"url": "https://files.pythonhosted.org/packages/91/74/beac9088cbd0666c14684ad8f28f66a6d2c188a2a4eb0497dfd3e714dea5/bddsync-1.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-27 15:33:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Manzanero",
"github_project": "bddsync",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "requests",
"specs": []
},
{
"name": "PyYAML",
"specs": []
}
],
"lcname": "bddsync"
}