зеркало из https://github.com/SteeltoeOSS/Samples.git
126 строки
3.7 KiB
Markdown
126 строки
3.7 KiB
Markdown
# Steeltoe Sample Application Tests
|
|
|
|
## Using the `behave` Wrappers
|
|
|
|
The Samples tests are run using [behave][behave_url], a Cucumber-style BDD framework written in Python.
|
|
This project's `behave` implementation requires Python 3. See [Installing Python 3](#installing-python-3) for platform-specific instructions.
|
|
|
|
Two helper scripts, [behave.ps1](behave.ps1) and [behave.sh](behave.sh), are provided to simplify the setup and invocation of `behave`.
|
|
These wrappers:
|
|
1. install `pipenv` into the user's Python package install directory
|
|
1. create a Python virtual environment for the project using `pipenv`
|
|
1. install needed Python packages into the virtual environment
|
|
1. invoke `behave` in the virtual environment
|
|
|
|
Steps 1-3 are only run if necessary (typically the first run). To force the wrapper scripts to re-run steps 1-3, create an empty file named `reinit` in the project root and rerun the wrapper.
|
|
|
|
Any arguments and parameters passed to a wrapper are subsequently passed to `behave`.
|
|
|
|
As an example, the following displays the help for `behave`:
|
|
|
|
```dos
|
|
C:> .\behave.ps1 -h
|
|
```
|
|
|
|
Running with no arguments will run every sample for every framework/runtime combination.
|
|
|
|
```dos
|
|
C:> .\behave.ps1
|
|
```
|
|
|
|
To run a specific sample, pass the path to the sample:
|
|
|
|
```dos
|
|
C:> .\behave.ps1 Connectors\src\RabbitMQ
|
|
```
|
|
|
|
To run only a specific framework/runtime combination, use the `--tags` or `-t` parameter:
|
|
|
|
```dos
|
|
C:> .\behave.ps1 Connectors\src\RabbitMQ -t netcoreapp2.1 -t ubuntu.16.04-x64
|
|
```
|
|
|
|
## Configuring
|
|
|
|
Create a `user.ini` file in the project root directory.
|
|
An example file, [`user.ini.example`](user.ini.example), is provided as a convenience.
|
|
|
|
```dos
|
|
C:> copy user.ini.example user.ini
|
|
```
|
|
|
|
The example file's options are commented with descriptions.
|
|
|
|
One option you might want to enable is `windowed = yes`.
|
|
Setting this option will run backgrounded processes in their own dedicated windows, making it easier to follow a test's progress.
|
|
|
|
### Cloud Foundry
|
|
|
|
If you don't specify Clound Foundry credentials, it is assumed you are already logged in to a Cloud Foundry endpoint.
|
|
|
|
You can configure credentials by setting the following options in `user.ini`:
|
|
|
|
* `cf_apiurl`
|
|
* `cf_username`
|
|
* `cf_password`
|
|
* `cf_org`
|
|
|
|
Sample:
|
|
|
|
```
|
|
[behave.userdata]
|
|
cf_apiurl = https://api.run.pcfone.io
|
|
cf_username = myuser
|
|
cf_password = mypass
|
|
cf_org = p-steeltoe
|
|
```
|
|
|
|
It is expected that a Cloud Foundry space named `development` exists for the configured credentials.
|
|
The `development` space will be used as the target from which to create additional spaces for running tests.
|
|
|
|
By default, each sample will use a dedicated space for its applications and services.
|
|
The space is named `{feature}-{sample}-{os}` where:
|
|
* `{feature}` is the feature name (the top directory node of the sample path)
|
|
* `{sample}` is the sample name (the bottom directory node of the sample path)
|
|
* `{os}` is one of: `windows`, `osx`, `linux` depending on the platform on which the tests are run
|
|
|
|
As an example, if running the sample `Connectors\src\RabbitMQ` on Windows, it will use the space `connectors-rabbitmq-windows`.
|
|
|
|
You can override this behavior by setting the `cf_space` option.
|
|
```
|
|
cf_space = myspace
|
|
```
|
|
|
|
## Installing Python 3
|
|
|
|
Running the Samples tests requires Python 3 and its corresponding `pip` package manager.
|
|
|
|
### Windows
|
|
|
|
Install [Chocolatey][choco_url].
|
|
|
|
Start a PowerShell as Administrator and run:
|
|
```dos
|
|
C:> choco install -y python3
|
|
```
|
|
|
|
### OS X
|
|
|
|
Install [Homebrew][brew_url].
|
|
|
|
Start a terminal and run:
|
|
```sh
|
|
$ brew install python3
|
|
```
|
|
|
|
### Ubuntu
|
|
|
|
Start a terminal and run:
|
|
```
|
|
$ sudo apt install -y python3 python3-pip
|
|
```
|
|
|
|
[choco_url]: https://chocolatey.org/
|
|
[brew_url]: https://brew.sh/
|
|
[behave_url]: https://github.com/behave/behave
|