Comments (2)
We have wrapped our executions with a custom bash script that gets the environment and test that we want to trigger as arguments.
One thing that we are doing is that we consolidate all the yaml files in a directory to a single a single yaml file and we provide it to venom.
If you have your directories named after your environments then it is easy to execute venom in the right context.
script_directory
is the current path that you are working on
CONTEXT_DIR
is the directory you want to output the files to start a test
VARIABLES_DIR
is a directory path ( ie env/dev
or env/staging
)
We use yq for merging all those yaml files into one ( ignoring any starting with example_... )
touch "${script_directory}/${CONTEXT_DIR}/initial_variables.yml"
files_to_merge=()
for file in "${script_directory}/${VARIABLES_DIR}"/*.yml; do
filename=$(basename "$file")
if [[ "${filename}" =~ ^example_.* ]]; then
echo "Ignoring ${filename}"
else
echo "appending ${file}"
files_to_merge+=" vars/${filename}"
fi
done
docker run --rm \
--mount type=bind,source="${script_directory}/${CONTEXT_DIR}",target=/workdir/out \
--mount type=bind,source="${script_directory}/${VARIABLES_DIR}",target=/workdir/vars \
mikefarah/yq ea '. as $item ireduce ({}; . * $item )' ${files_to_merge} > "${script_directory}/${CONTEXT_DIR}/initial_variables.yml"
Then in the venom execution
venom run ${test_file} --var-from-file="${script_directory}/${CONTEXT_DIR}/initial_variables.yml" --format=json --html-report
from venom.
It's a nice idea, but I'm not sure if it's venom's responsibility to maintain a dictionary of variables. Just like handling parallelism on venom run command, I think this needs to be done outside of venom.
Thank you @fokion for the example.
from venom.
Related Issues (20)
- FEATURE REQUEST: Use captured variables within steps themselves HOT 1
- Wrong executable for Intel-based Mac HOT 1
- Create a new assertion ShouldJsonContain for arrays HOT 1
- Need uuid support just randAlphaNum HOT 4
- bug: Running venom on windows using git bash shell
- (bug) Test case mark as failed even if succeeded
- (bug) Subassertions are not rendered in reports HOT 2
- (suggestion) Allow delay in non-retryable tasks
- (suggestion) Customize test result filename HOT 1
- (bug) Unable to assert test case on venom.datetime HOT 5
- (enhancement) extend range to cover a test case with multiple steps
- Add --var-env [prefix] feature HOT 2
- Documentation update for beta4 HOT 4
- (suggestion) Homebrew formula
- (suggestion) replace "{{ }}" with "$( )", "${ }" or any yaml-friendly marker
- Setting vars value with result of a step does not seem to evaluate HOT 6
- [bug] `skip` doesn't work with variables from previous steps
- [bug] `http` executor can't load TLS certs using absolute path
- [bug] logs name autoincrement doesn't work when `output-dir` is set
- invalid session id with web executor HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from venom.