Pulling features
The aim of Dentest is to help you go to a more behavior driven approach, by letting non-developers use the web platform, and letting developers retrieve everything that has been created, inside the technical project.
How we see the developers journey:
- Pulling the features from Dentest (Gherkin files will be created in the root directory of their choice, following the tree that has been defined on Dentest)
- Implementing the missing steps so that the Gherkin interpreter can match a step to a piece of code
- Implementing the feature to make the tests pass
- Pushing this work on the versioning tool, so that the CI can run the Gherkin features as tests
- Deploying once everything is good
caution
You can only pull the features that aren't in Draft mode
#
Before your first pull#
Retrieving your tokenA token must be gathered in order to pull the features. This token is yours, and only works for this project. So, do not commit it.
To retrieve the token, login to Dentest, and go to the project's root page.
Click on the "Show pull token" button (you must have pull rights to see it).
A dialog will open, with your token in it. Copy it (or click the "Copy" button).
#
Refreshing the pull tokenIf your token has been compromised, or just to change it, you can also do it from Dentest. Follow the same steps than for the token retrieval, and instead copying the token, just click on the "Regenerate" button.
caution
The previous token will be revoked, you won't be able to use it after this action
#
Pulling#
Using the JetBrains pluginIf you are using an IDE from the Jetbrains suite, there is a plugin that you can use. Just search for "Dentest" in the Marketplace.
#
First pull and configurationFirst of, you can run Dentest from the newly created menu entry, or using the "Dentest pull" shortcut in the toolbar (a blue arrow).
At the first pull, or if you run "Configuration", you will see the following dialog:
Here, you can provide the following information:
Property | Explanation |
---|---|
Dentest API | The URL of the Dentest API. If you are using dentest.tech, let it as is. For a custom install, provide your own API URL. |
Dentest Pull Token | The token you just created from the web interface |
Features destination | The directory where you want the features to be created |
Inline param wrapping string | The string used to surroung step sentences inlined parameters |
Subsequent script | If you want to run a post-pull command, specify it here |
#
PullOnce everything's settled, when pulling, you'll see a list containing all your features that aren't in Draft mode. Just select the ones you want to pull and the files will be created in the directory you specified.
#
Using the VSCode pluginIf you are using VSCode, there is also an extension that you can use. Just search for "Dentest" in the Marketplace.
Otherwise, here is the link
#
First pull and configurationOnce installed, you'll see a new button in the status bar ("Dentest pull").
By clicking it the first time, you'll enter in configuration mode. You need to fill in some information so that the extension finds your features.
Here, you can provide the following information:
Property | Explanation |
---|---|
API | The URL of the Dentest API. If you are using dentest.tech, let it as is. For a custom install, provide your own API URL. |
Pull Token | The token you just created from the web interface |
Features destination | The directory where you want the features to be created |
Inline params wrapping string | The string used to surroung step sentences inlined parameters |
#
PullOnce everything's settled, when pulling, you'll see a list containing all your features that aren't in Draft mode. Just select the one you want to pull and the file will be created in the directory you specified.
#
Changing the configurationYou can either reset the configuration, or update it, by running the following commands from the palette (Ctrl+Shift+P or Cmd+P for Mac): "Dentest: Configuration" and "Dentest: clear configuration"
#
Using the Dentest CLI#
Getting the Dentest CLILook for the Dentest CLI's releases on Github: https://github.com/dentest-project/cli/releases In the latest release, download the binary that corresponds to your OS (you can choose between Mac OS or Linux (AMD64)).
caution
On MacOS, you can experience some security warnings. Just add an exception for Dentest in your computer settings.
If your OS or architecture is not in the list, just clone the project and build it using Rust Cargo (cargo build --release
).
Then, rename the binary to dentest
. If you're on a UNIX-based system, like Mac OS or Linux, just move the renamed
binary to /usr/local/bin/dentest
#
Preparing the projectA .dentest.yml
file must be created at the root of the project. It can be a different name, we'll see that later, but
this one is handled by default.
This file must contain the directory in which you want to pull the Gherkin files, and can also contain a wrapper for inline step parameters (such as quotes).
dir: features # Mandatory. The folder in which you want to pull the featuresinline_parameter_wrapper: '"' # Optional. The string that will surround the inline parameters of your features steps
Then, set the token as an environment variable named DENTEST_TOKEN
, or in a .env
file at the root of your project.
#.envDENTEST_TOKEN=1ebea2f2-4d36-6938-aa2f-fb602817e47e
#
Pulling the featuresJust run
dentest pull
If you couldn't set the token as an env var or in a .env
file, you can also run dentest
this way:
DENTEST_TOKEN=1ebea2f2-4d36-6938-aa2f-fb602817e47e dentest pull
All the features that aren't in Draft
mode will be pulled inside your project. You can start implementing them!
#
Using a different name for the configuration fileAs said earlier, you can choose a different name for the configuration file, in replacement of .dentest.yml
.
If you decide to do so, just pass an option to dentest
when pulling:
dentest -c ./specs.yml pull
info
It can have a different name, but it must be YAML file