Comments (4)
This is similar to (but better than!) an idea I had in the past, which was to add a 'description' attribute to tests that could be printed on test failure to give a bit more information to the user on which test failed. Being able to define it at test or file level, defaulting to the file name, would be handy when your tests are split over multiple gossfiles, possibly managed by multiple other sources.
from goss.
correct me if I'm wrong but do title and meta cover the "hint"/"description" use case?
example file defining title and meta:
$ cat goss.yaml
command:
some_test:
title: This is some arbitrary title
meta:
any-key: any-value
version: 17
severity: very severe
contact: call bob
hint: node-exporter listening port
exec: |
echo "hi"
stdout:
- bye
example output:
$ goss v
FF
Failures/Skipped:
Title: This is some arbitrary title
Meta:
any-key: any-value
contact: call bob
hint: node-exporter listening port
severity: very severe
version: 17
some_test: exit-status: Error: Missing Required Attribute
Command: some_test: stdout: patterns not found: [bye]
Total Duration: 0.004s
Count: 2, Failed: 2, Skipped: 0
Just realized they're documented in the readme, but not the manual https://github.com/goss-org/goss#manually-editing-goss-files
Basically, title can be set to any string and meta can be set to any key/value (both are stored strings).
from goss.
Oh wow, I somehow completely missed that.
After playing around with these a bit, the only criticism I have is that it seems that neither can be set at the file level?
# goss.yaml
title: testing file level titles
command:
fail_w/o_title:
exec: /bin/false
exit-status: 0
fail_w_title:
title: This test has a title set
exec: /bin/false
exit-status: 0
Output:
$ goss v
FF
Failures/Skipped:
Command: fail_w/o_title: exit-status:
Expected
<int>: 1
to equal
<int>: 0
Title: This test has a title set
Command: fail_w_title: exit-status:
Expected
<int>: 1
to equal
<int>: 0
Total Duration: 0.002s
Count: 2, Failed: 2, Skipped: 0
I guess it'd be nice to be able to set title
and meta
attributes on a file level that act as default values for tests that don't have these set.
The current limitation can be worked around by setting the same title
for each test (I'd simply set the file name) but that seems like a lot of unnecessary work and code.
Apart from that, that's exactly what I was looking for. Thanks!
from goss.
@sshipway just want to confirm, does the current functionality of title/meta meet your suggestion above?
@pahaeanx I like your suggestion, but it might be a little (long) while before I get to it to be honest.
Mostly because, I'm thinking as a future enhancement Goss should have the ability to group tests into a test suite.. that suite can then have title/meta.. but it can also have other things like setup/teardown.
Perhaps the file will be the group.. or maybe there would be some other top level suite concept introduced that allows multiple suites to be set for a given file.
Once I get through the final Goss v4 release, I'll open up some issues mapping out the future roadmap. Hopefully, I can stimulate some OSS contributions to the projects for some of them.
from goss.
Related Issues (20)
- Write test report artifacts directly HOT 5
- install.sh: Install latest release HOT 1
- Remove Molecule from Community Contributions section in readme
- Set a custom user agent string for http checks HOT 4
- Unable to read the documentation HOT 6
- Use goss as a go package outside of the CLI HOT 2
- goss validate command does not print command output HOT 2
- Alternatives to Goss? HOT 2
- dgoss: Copy multiple files with `GOSS_FILES_PATH`
- How can we get goss working on AIX server HOT 1
- High severity CVE related with go stdlib version HOT 13
- goss.rocks/install redirects to "old" URL HOT 2
- Improve CI pipeline and integration tests HOT 16
- Is there a way to pass in a list as a variable? HOT 4
- yaml escaping seen as string and not boolean HOT 3
- Missing dgoss sha256 asset for release v0.4.7 HOT 3
- Can we add ansible galaxy goss install to README? HOT 2
- Semver package check did not work with alpine packages HOT 6
- Dgoss Error when Running tests /goss/goss: no such file or directory. HOT 2
- Final steps to new documentation HOT 3
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 goss.