Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rodrigoio/testbucket
A tool to generate test cases
https://github.com/rodrigoio/testbucket
integration-tests phpunit tests
Last synced: 3 months ago
JSON representation
A tool to generate test cases
- Host: GitHub
- URL: https://github.com/rodrigoio/testbucket
- Owner: rodrigoio
- License: mit
- Created: 2019-07-12T02:24:41.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2021-09-18T15:24:16.000Z (over 3 years ago)
- Last Synced: 2024-10-01T14:48:58.405Z (4 months ago)
- Topics: integration-tests, phpunit, tests
- Language: PHP
- Homepage:
- Size: 218 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
## Test Bucket
TestBucket is a tool that aims to assist the testing process by generating functional test cases.### About
TestBucket is a tool aims to generate test cases from the definition of a specification in YAML notation.
This specification aims to determine input domains and correlation between fields in a form.Once we have a specification in a concrete and not subjective way, we can apply several known techniques of
software tests to generate test cases. The scope of this project is limited, for now, to generate integrated
tests not having a direct relationship with the application code, but with the specification.Consider contributing to this project with code :nerd_face:; or thoughts and ideas :monocle_face: !
### Working on... :hammer_and_wrench:
* New data types
* New combiner algorithm### Useful commands:
```shell script# build image
make build# run all tests
make test# run dev environment
make run# stop dev environment
make stop
```#### Data Types
##### Range Types:
| type | Description | Status |
|---------------|-------------|--------|
| integer:range | (...) | Done |
| float:range | (...) | Pending |
| date:range | (...) | Pending |##### Static Types:
| type | Description | Status |
|---------------|-------------|--------|
| string:static | (...) | Pending |
| boolean:static| (...) | Pending |#### YAML Specification
```yaml
version: 1.0
group: UserForm
properties:
- name: name
type: static
value: ["bob", "alice"]
- name: surname
type: static
value: ["red", "green"]
```#### Execute using container:
```shell script
docker run -it --rm --name testbucket-run -v "$PWD":/tmp testbucket ./testbucket testbucket:process --spec=/tmp/test.yaml --output=/tmp
```#### Expected Data
Each line is a json object that defines a `TestCase` with properties and if its valid or not, and all values are encoded in base64.
This example only shows valid test cases: `is_valid=true````
{"group_name":"UserForm","properties":{"name":"Ym9i","surname":"cmVk"},"is_valid":true}
{"group_name":"UserForm","properties":{"name":"Ym9i","surname":"Z3JlZW4="},"is_valid":true}
{"group_name":"UserForm","properties":{"name":"YWxpY2U=","surname":"cmVk"},"is_valid":true}
{"group_name":"UserForm","properties":{"name":"YWxpY2U=","surname":"Z3JlZW4="},"is_valid":true}
```#### Contribute:
If you want to contribute to this project, see the [guidelines][0][0]: https://github.com/rodrigoio/testbucket/blob/master/CONTRIBUTING.md