-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Epic] CLI Improvements #2182
Comments
Global FlagsAll commands share some common flags:
These flags MUST NOT be overriden by subcommands both in the short and long form. For example, no subcommand can use the |
PollingProfile
Description: get the currently active polling profile
JSON Output Example: {
"type": "PollingProfile",
"spec":{
"id":"current",
"name":"default",
"default":true,
"strategy":"periodic",
"periodic":{
"retryDelay":"500ms",
"timeout":"50s"
}
}
} YAML Output Example: ---
type: PollingProfile
spec:
id: current
name: default
default: true
strategy: periodic
periodic:
retryDelay: 500ms
timeout: 50s
Description: PollingProfile is a single resource, so list is not available
Description: reset the pollingprofile to the default state
JSON Output Example: {
"success": true,
"errors": [],
"message": "PollingProfile successfully reset to default"
} YAML Output Example: ---
sucess: true
message: PollingProfile successfully reset to default
errors: []
Description: update the pollingprofile settings
JSON Output Example: {
"success": true,
"errors": [],
"message": "PollingProfile successfully updated"
} YAML Output Example: ---
sucess: true
message: PollingProfile successfully updated
errors: []
Description: PollingProfile is not runnable, so run is not available
|
Config
Description: get the currently active config
JSON Output Example: {
"type": "Config",
"spec": {
"id": "current",
"name": "Current",
"analyticsEnabled": true
}
} YAML Output Example: ---
type: Config
spec:
id: current
name: Current
analyticsEnabled: true
Description: Config is a single resource, so list is not available
Description: reset the config to the default state
JSON Output Example: {
"success": true,
"errors": [],
"message": "Config successfully reset to default"
} YAML Output Example: ---
sucess: true
message: Config successfully reset to default
errors: []
Description: update the config settings
Pretty Output Example:
JSON Output Example: {
"success": true,
"errors": [],
"message": "Config successfully updated"
} YAML Output Example: ---
sucess: true
message: Config successfully updated
errors: []
Description: Config is not runnable, so run is not available
|
Demo
Description: Get a demo by ID
JSON Output Example: {
"type": "Demo",
"spec": {
"id": "WZGNTOBVg",
"name": "pokeshop",
"enabled": true,
"pokeshop": {
"httpEndpoint": "http://demo-pokemon-api.demo",
"grpcEndpoint": "demo-pokemon-api.demo"
}
}
} YAML Output example: ---
type: Demo
spec:
id: WZGNTOBVg
name: pokeshop
enabled: true
pokeshop:
httpEndpoint: http://demo-pokemon-api.demo
grpcEndpoint: demo-pokemon-api.demo
Description: List Demos
Pretty Output Example: Total avialable Demos: 3
JSON Output Example: {
"count": 3,
"items": [
{
"type": "Demo",
"spec": {
"id": "WZGNTOBVg",
"name": "pokeshop",
"enabled": true,
"pokeshop": {
"httpEndpoint": "http://demo-pokemon-api.demo",
"grpcEndpoint": "demo-pokemon-api.demo"
}
}
},
{
"type": "Demo",
"spec": {
"id": "WZGNRenVg",
"name": "pokeshop",
"type": "pokeshop",
"enabled": false,
"pokeshop": {
"httpEndpoint": "http://old-url.demo",
"grpcEndpoint": "old-url.demo"
}
}
},
{
"type": "Demo",
"spec": {
"id": "WZGNRenVg",
"name": "pokeshop",
"type": "opentelemetryStore",
"opentelemetryStore": {
"cartEndpoint": "http://otel-cartservice.otel-demo:7070",
"checkoutEndpoint": "http://otel-checkoutservice.otel-demo:5050",
"frontendEndpoint": "http://otel-frontend.otel-demo:8084",
"productCatalogEndpoint": "http://otel-productcatalogservice.otel-demo:3550"
}
}
}
]
} YAML Output example: ---
type: Demo
spec:
id: WZGNTOBVg
name: pokeshop
enabled: true
pokeshop:
httpEndpoint: http://demo-pokemon-api.demo
grpcEndpoint: demo-pokemon-api.demo
---
type: Demo
spec:
id: WZGNRenVg
name: pokeshop
type: pokeshop
enabled: false
pokeshop:
httpEndpoint: http://old-url.demo
grpcEndpoint: old-url.demo
---
type: Demo
spec:
id: WZGNRenVg
name: pokeshop
type: opentelemetryStore
opentelemetryStore:
cartEndpoint: http://otel-cartservice.otel-demo:7070
checkoutEndpoint: http://otel-checkoutservice.otel-demo:5050
frontendEndpoint: http://otel-frontend.otel-demo:8084
productCatalogEndpoint: http://otel-productcatalogservice.otel-demo:3550
Description: Delete a demo by ID
JSON Output Example: {
"success": true,
"errors": [],
"message": "Demo successfully deleted"
} YAML Output Example: ---
sucess: true
message: Demo successfully deleted
errors: []
Description: Save a demo to the server. If it does not yet exists on the server, it is created. Otherwise it is updated. Input can be a file with one or more documents, or a directory with files with one or more documents. This is not transactional, so if an error happens, all changes to resources applied until the error are kept.
Pretty Output Example:
JSON Output Example: {
"success": true,
"errors": [],
"message": "Demo successfully applied"
} YAML Output Example: ---
sucess: true
message: Demo successfully applied
errors: []
Description: Demo is not runnable, so run is not available
|
Environment
Description: Get an environment by ID
JSON Output Example: {
"type": "Environment",
"spec": {
"id": "dev",
"name": "dev",
"description": "my dev environment",
"values": [
{
"key": "hostname",
"value": "localhost"
},
{
"key": "app_port",
"value": "8080"
},
{
"key": "pokemon_id",
"value": "22"
}
]
}
} YAML Output example: ---
type: Environment
spec:
id: dev
name: dev
description: my dev environment
values:
- key: hostname
value: localhost
- key: app_port
value: "8080"
- key: pokemon_id
value: "22"
Description: List Environments
Pretty Output Example: Total avialable Environments: 2
JSON Output Example: {
"count": 2,
"items": [
{
"type": "Environment",
"spec": {
"id": "dev",
"name": "dev",
"description": "my dev environment",
"values": [
{
"key": "hostname",
"value": "localhost"
},
{
"key": "app_port",
"value": "8080"
},
{
"key": "pokemon_id",
"value": "22"
}
]
}
},
{
"type": "Environment",
"spec": {
"id": "prod`",
"name": "prod",
"description": "my prod environment",
"values": [
{
"key": "hostname",
"value": "myapp.com"
},
{
"key": "app_port",
"value": "8080"
},
{
"key": "pokemon_id",
"value": "100"
}
]
}
}
]
} YAML Output example: ---
type: Environment
spec:
id: dev
name: dev
description: my dev environment
values:
- key: hostname
value: localhost
- key: app_port
value: "8080"
- key: pokemon_id
value: "22"
---
type: Environment
spec:
id: dev
name: dev
description: my dev environment
values:
- key: hostname
value: localhost
- key: app_port
value: "8080"
- key: pokemon_id
value: "22"
Description: Delete an environment by ID
JSON Output Example: {
"success": true,
"errors": [],
"message": "Environment successfully deleted"
} YAML Output Example: ---
sucess: true
message: Environment successfully deleted
errors: []
Description: Save an environment to the server. If it does not yet exists on the server, it is created. Otherwise it is updated.
Pretty Output Example:
JSON Output Example: {
"success": true,
"errors": [],
"message": "Environment successfully applied"
} YAML Output Example: ---
sucess: true
message: Environment successfully applied
errors: []
Description: Environment is not runnable, so run is not available
|
DataStore
Description: get the currently active dataStore
JSON Output Example: {
"type": "DataStore",
"spec": {
"id": "current",
"name": "Current",
"type": "jaeger",
"default": true,
"jaeger": {
"endpoint": "jaeger-query.tracetest:16685",
"tls": {
"insecure": true
}
},
"createdAt": "2023-03-09T17:53:10.256383Z"
}
} YAML Output example: ---
type: DataStore
spec:
id: current
name: Current
type: jaeger
default: true
jaeger:
endpoint: jaeger-query.tracetest:16685
tls:
insecure: true
Description: DataStore is a single resource, so list will print only one item
Description: remove the configured DataStore and put tracetest in no-tracing mode
JSON Output Example: {
"success": true,
"errors": [],
"message": "DataStore removed. Defaulting back to no-tracing mode"
} YAML Output Example: ---
sucess: true
message: DataStore removed. Defaulting back to no-tracing mode
errors: []
Description: update the DataStore settings
JSON Output Example: {
"success": true,
"errors": [],
"message": "DataStore successfully updated"
} YAML Output Example: ---
sucess: true
message: DataStore successfully updated
errors: []
Description: DataStore is not runnable, so run is not available
|
Test
Description: Get a test by ID
JSON Output Example: {
"type": "Test",
"spec": {
"id": "uivSWYf4g",
"name": "Pokeshop - List",
"description": "Get a Pokemon",
"version": 1,
"createdAt": "2023-03-27T20:08:14.171787Z",
"serviceUnderTest": {
"triggerType": "http",
"triggerSettings": {
"http": {
"url": "http://demo-pokemon-api.demo.svc.cluster.local/not-exists",
"method": "GET",
"headers": [{
"key": "Content-Type",
"value": "application/json"
}]
}
}
},
"specs": {
"specs": [{
"name": "",
"selector": {
"query": "span[tracetest.span.type=\"general\" name=\"Tracetest trigger\"]",
"structure": [{
"filters": [{
"property": "tracetest.span.type",
"operator": "=",
"value": "general"
},
{
"property": "name",
"operator": "=",
"value": "Tracetest trigger"
}
]
}]
},
"assertions": [
"attr:tracetest.response.status = 200"
]
}]
},
"summary": {
"runs": 5,
"lastRun": {
"time": "2023-03-27T20:08:14.366933Z",
"passes": 1
}
}
}
} YAML Output example: ---
type: Test
spec:
id: uivSWYf4g
name: Pokeshop - List
description: Get a Pokemon
trigger:
type: http
http:
url: http://demo-pokemon-api.demo.svc.cluster.local/not-exists
method: GET
headers:
- key: Content-Type
value: application/json
specs:
- selector: span[tracetest.span.type="general" name="Tracetest trigger"]
assertions:
- attr:tracetest.response.status = 200
Description: List Tests
Pretty Output Example: Total avialable Tests: 2
JSON Output Example: {
"items": [
{
"type": "Test",
"spec": {
"id": "uivSWYf4g",
"name": "Pokeshop - List",
"description": "Get a Pokemon",
"version": 1,
"createdAt": "2023-03-27T20:08:14.171787Z",
"serviceUnderTest": {
"triggerType": "http",
"triggerSettings": {
"http": {
"url": "http://demo-pokemon-api.demo.svc.cluster.local/not-exists",
"method": "GET",
"headers": [{
"key": "Content-Type",
"value": "application/json"
}]
}
}
},
"specs": {
"specs": [{
"name": "",
"selector": {
"query": "span[tracetest.span.type=\"general\" name=\"Tracetest trigger\"]",
"structure": [{
"filters": [{
"property": "tracetest.span.type",
"operator": "=",
"value": "general"
},
{
"property": "name",
"operator": "=",
"value": "Tracetest trigger"
}
]
}]
},
"assertions": [
"attr:tracetest.response.status = 200"
]
}]
},
"summary": {
"runs": 5,
"lastRun": {
"time": "2023-03-27T20:08:14.366933Z",
"passes": 1
}
}
}
},
{
"type": "Test",
"spec": {
"id": "uivSWYf4g",
"name": "Pokeshop - List",
"description": "Get a Pokemon",
"version": 1,
"createdAt": "2023-03-27T20:08:14.171787Z",
"serviceUnderTest": {
"triggerType": "http",
"triggerSettings": {
"http": {
"url": "http://demo-pokemon-api.demo.svc.cluster.local/not-exists",
"method": "GET",
"headers": [{
"key": "Content-Type",
"value": "application/json"
}]
}
}
},
"specs": {
"specs": [{
"name": "",
"selector": {
"query": "span[tracetest.span.type=\"general\" name=\"Tracetest trigger\"]",
"structure": [{
"filters": [{
"property": "tracetest.span.type",
"operator": "=",
"value": "general"
},
{
"property": "name",
"operator": "=",
"value": "Tracetest trigger"
}
]
}]
},
"assertions": [
"attr:tracetest.response.status = 200"
]
}]
},
"summary": {
"runs": 5,
"lastRun": {
"time": "2023-03-27T20:08:14.366933Z",
"passes": 1
}
}
}
}
],
} YAML Output example: ---
type: Test
spec:
id: uivSWYf4g
name: Pokeshop - List
description: Get a Pokemon
trigger:
type: http
http:
url: http://demo-pokemon-api.demo.svc.cluster.local/not-exists
method: GET
headers:
- key: Content-Type
value: application/json
specs:
- selector: span[tracetest.span.type="general" name="Tracetest trigger"]
assertions:
- attr:tracetest.response.status = 200
---
type: Test
spec:
id: uivSWYf4g
name: Pokeshop - List
description: Get a Pokemon
trigger:
type: http
http:
url: http://demo-pokemon-api.demo.svc.cluster.local/not-exists
method: GET
headers:
- key: Content-Type
value: application/json
specs:
- selector: span[tracetest.span.type="general" name="Tracetest trigger"]
assertions:
- attr:tracetest.response.status = 200
Description: Delete a test by ID
JSON Output Example: {
"success": true,
"errors": [],
"message": "Test successfully deleted"
} YAML Output Example: ---
sucess: true
message: Test successfully deleted
errors: []
Description: Save a test to the server. If it does not yet exists on the server, it is created. Otherwise it is updated.
Pretty Output Example:
JSON Output Example: {
"success": true,
"errors": [],
"message": "Test successfully applied"
} YAML Output Example: ---
sucess: true
message: Test successfully applied
errors: []
Description: Run a test by ID or from a definition file
Validation:
Output |
Transaction
Description: Get a transaction by ID
JSON Output Example: {
"type": "Transaction",
"spec": {
"id": "RRlVDYB4R",
"name": "Shopping Cart flow",
"version": 1,
"steps": [
{
"id": "uivSWYf4g",
"name": "Login",
"description": "Login",
"version": 1,
"createdAt": "2023-03-27T20:08:14.171787Z",
"serviceUnderTest": {
"triggerType": "http",
"triggerSettings": {
"http": {
"url": "http://demo-pokemon-api.demo.svc.cluster.local/login",
"method": "GET",
"headers": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
}
},
"summary": {
"runs": 2,
"lastRun": {
"time": "2023-03-27T21:52:50.978947Z"
}
}
},
{
"id": "ZIM6hOf4g",
"name": "Add to cart",
"description": "add a product to the cart",
"version": 1,
"createdAt": "2023-03-23T17:01:51.203541Z",
"serviceUnderTest": {
"triggerType": "http",
"triggerSettings": {
"http": {
"url": "http://demo-pokemon-api.demo.svc.cluster.local/pokemon?take=20&skip=0",
"method": "GET",
"headers": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
}
},
"summary": {
"runs": 2,
"lastRun": {
"time": "2023-03-27T21:52:57.138436Z"
}
}
}
],
"createdAt": "2023-03-27T21:52:50.17695Z",
"summary": {
"runs": 5,
"lastRun": {
"time": "2023-03-27T21:52:50.872917Z"
}
}
}
} YAML Output example: ---
type: Transaction
spec:
id: RRlVDYB4R
name: Shopping Cart flow
steps:
- uivSWYf4g
- ZIM6hOf4g
Description: List Transactions
Pretty Output Example: Total avialable Transactions: 2
JSON Output Example: {
"count": 2,
"items": {
{
"type": "Transaction",
"spec": {
"id": "RRlVDYB4R",
"name": "Shopping Cart flow",
"version": 1,
"steps": [
{
"id": "uivSWYf4g",
"name": "Login",
"description": "Login",
"version": 1,
"createdAt": "2023-03-27T20:08:14.171787Z",
"serviceUnderTest": {
"triggerType": "http",
"triggerSettings": {
"http": {
"url": "http://demo-pokemon-api.demo.svc.cluster.local/login",
"method": "GET",
"headers": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
}
},
"summary": {
"runs": 2,
"lastRun": {
"time": "2023-03-27T21:52:50.978947Z"
}
}
},
{
"id": "ZIM6hOf4g",
"name": "Add to cart",
"description": "add a product to the cart",
"version": 1,
"createdAt": "2023-03-23T17:01:51.203541Z",
"serviceUnderTest": {
"triggerType": "http",
"triggerSettings": {
"http": {
"url": "http://demo-pokemon-api.demo.svc.cluster.local/pokemon?take=20&skip=0",
"method": "GET",
"headers": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
}
},
"summary": {
"runs": 2,
"lastRun": {
"time": "2023-03-27T21:52:57.138436Z"
}
}
}
],
"createdAt": "2023-03-27T21:52:50.17695Z",
"summary": {
"runs": 5,
"lastRun": {
"time": "2023-03-27T21:52:50.872917Z"
}
}
}
},
{
"type": "Transaction",
"spec": {
"id": "RRlVDYB4R",
"name": "Shopping Cart flow",
"version": 1,
"steps": [
{
"id": "uivSWYf4g",
"name": "Login",
"description": "Login",
"version": 1,
"createdAt": "2023-03-27T20:08:14.171787Z",
"serviceUnderTest": {
"triggerType": "http",
"triggerSettings": {
"http": {
"url": "http://demo-pokemon-api.demo.svc.cluster.local/login",
"method": "GET",
"headers": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
}
},
"summary": {
"runs": 2,
"lastRun": {
"time": "2023-03-27T21:52:50.978947Z"
}
}
},
{
"id": "ZIM6hOf4g",
"name": "Add to cart",
"description": "add a product to the cart",
"version": 1,
"createdAt": "2023-03-23T17:01:51.203541Z",
"serviceUnderTest": {
"triggerType": "http",
"triggerSettings": {
"http": {
"url": "http://demo-pokemon-api.demo.svc.cluster.local/pokemon?take=20&skip=0",
"method": "GET",
"headers": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
}
},
"summary": {
"runs": 2,
"lastRun": {
"time": "2023-03-27T21:52:57.138436Z"
}
}
}
],
"createdAt": "2023-03-27T21:52:50.17695Z",
"summary": {
"runs": 5,
"lastRun": {
"time": "2023-03-27T21:52:50.872917Z"
}
}
}
}
}
} YAML Output example: ---
type: Transaction
spec:
id: RRlVDYB4R
name: Shopping Cart flow
steps:
- uivSWYf4g
- ZIM6hOf4g
---
type: Transaction
spec:
id: RRlVDYB4R
name: Shopping Cart flow
steps:
- uivSWYf4g
- ZIM6hOf4g
Description: Delete a transaction by ID
JSON Output Example: {
"success": true,
"errors": [],
"message": "Transaction successfully deleted"
} YAML Output Example: ---
sucess: true
message: Transaction successfully deleted
errors: []
Description: Save a transaction to the server. If it does not yet exists on the server, it is created. Otherwise it is updated.Input can be a file with one or more documents, or a directory with files with one or more documents. This is not transactional, so if an error happens, all changes to resources applied until the error are kept.
Pretty Output Example:
JSON Output Example: {
"success": true,
"errors": [],
"message": "Transaction successfully applied"
} YAML Output Example: ---
sucess: true
message: Transaction successfully applied
errors: []
Description: Run a transaction by ID or from a definition file
Validation:
Pretty Output Example: JSON Output Example:
YAML Output Example:
|
All Resources
Description: List all resources
Pretty Output Example: Total avialable Resources: 4
JSON Output Example: {
"count": 4,
"items": {
{
"type": "Config",
"spec": {
"id": "current",
"name": "Current",
"analyticsEnabled": true
}
},
{
"type": "DataStore",
"spec": {
"id": "current",
"name": "Current",
"type": "jaeger",
"isDefault": true,
"jaeger": {
"endpoint": "jaeger-query.tracetest:16685",
"tls": {
"insecure": true
}
},
"createdAt": "2023-03-09T17:53:10.256383Z"
}
},
{
"type": "Transaction",
"spec": {
"id": "RRlVDYB4R",
"name": "Shopping Cart flow",
"version": 1,
"steps": [
{
"id": "uivSWYf4g",
"name": "Login",
"description": "Login",
"version": 1,
"createdAt": "2023-03-27T20:08:14.171787Z",
"serviceUnderTest": {
"triggerType": "http",
"triggerSettings": {
"http": {
"url": "http://demo-pokemon-api.demo.svc.cluster.local/login",
"method": "GET",
"headers": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
}
},
"summary": {
"runs": 2,
"lastRun": {
"time": "2023-03-27T21:52:50.978947Z"
}
}
},
{
"id": "ZIM6hOf4g",
"name": "Add to cart",
"description": "add a product to the cart",
"version": 1,
"createdAt": "2023-03-23T17:01:51.203541Z",
"serviceUnderTest": {
"triggerType": "http",
"triggerSettings": {
"http": {
"url": "http://demo-pokemon-api.demo.svc.cluster.local/pokemon?take=20&skip=0",
"method": "GET",
"headers": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
}
},
"summary": {
"runs": 2,
"lastRun": {
"time": "2023-03-27T21:52:57.138436Z"
}
}
}
],
"createdAt": "2023-03-27T21:52:50.17695Z",
"summary": {
"runs": 5,
"lastRun": {
"time": "2023-03-27T21:52:50.872917Z"
}
}
}
},
{
"type": "Test",
"spec": {
"id": "uivSWYf4g",
"name": "Pokeshop - List",
"description": "Get a Pokemon",
"version": 1,
"createdAt": "2023-03-27T20:08:14.171787Z",
"serviceUnderTest": {
"triggerType": "http",
"triggerSettings": {
"http": {
"url": "http://demo-pokemon-api.demo.svc.cluster.local/not-exists",
"method": "GET",
"headers": [{
"key": "Content-Type",
"value": "application/json"
}]
}
}
},
"specs": {
"specs": [{
"name": "",
"selector": {
"query": "span[tracetest.span.type=\"general\" name=\"Tracetest trigger\"]",
"structure": [{
"filters": [{
"property": "tracetest.span.type",
"operator": "=",
"value": "general"
},
{
"property": "name",
"operator": "=",
"value": "Tracetest trigger"
}
]
}]
},
"assertions": [
"attr:tracetest.response.status = 200"
]
}]
},
"summary": {
"runs": 5,
"lastRun": {
"time": "2023-03-27T20:08:14.366933Z",
"passes": 1
}
}
}
}
}
} YAML Output example: ---
type: Config
spec:
id: current
name: Current
analyticsEnabled: true
---
type: DataStore
spec:
id: current
name: Current
type: jaeger
isDefault: true
jaeger:
endpoint: jaeger-query.tracetest:16685
tls:
insecure: true
---
type: Test
spec:
id: uivSWYf4g
name: Pokeshop - List
description: Get a Pokemon
trigger:
type: http
http:
url: http://demo-pokemon-api.demo.svc.cluster.local/not-exists
method: GET
headers:
- key: Content-Type
value: application/json
specs:
- selector: span[tracetest.span.type="general" name="Tracetest trigger"]
assertions:
- attr:tracetest.response.status = 200
---
type: Transaction
spec:
id: RRlVDYB4R
name: Shopping Cart flow
steps:
- uivSWYf4g
- uivSWYf4g
Description: Delete all resources in the Tracetest server, resetting it to a default empty state
Pretty Output Example:
JSON Output Example: {
"success": true,
"errors": [],
"message": "Tracetest successfully reset"
} YAML Output Example: ---
sucess: true
message: Tracetest successfully reset
errors: []
Description: Applies all resources in the given file or directory. This is not transactional, so if an error happens, all changes to resources applied until the error are kept.
Pretty Output Example:
JSON Output Example: {
"success": true,
"errors": [],
"message": "Resources successfully applied"
} YAML Output Example: ---
sucess: true
message: Resources successfully applied
errors: [] |
Dashboard
Description: Open the web UI dashboard in the default browser
|
@schoren i think OUTPUT can be: JSON Output Example:
YAML Output Example:
|
@olha23 thanks! We would still need to handle the Transactions are sequential, meaning a test starts, finishes, and then the next one is started. We could do something like:
What could we show if there is an error between test 1 and test2, for example? like what the output would look like? This is just for the pretty output, other formats can wait for the transaction to finish and show the encoded raw information, as it does with other resources. |
Maybe something like this:
we can use emojis to represent the different statuses and actions in the output. This makes it easier to quickly scan the output and understand the results of the transaction and each test case. @schoren what do you think? |
It looks good. A few things:
`tracetest run transaction --id [transactionID/name] --wait-for-results 🏃 Running transaction [transactionID/name]🏃 Running test [testID/name] #1 ❌ Test [testID/name] has failed. 🏃 Running test [testID/name] #2 ✅ Test [testID/name] #2 has passed. =================================== |
@schoren @kdhamric couple options: first:
Second:
|
@schoren By reading through the issues, I think we can separate the tasks into three types:
That way we can identify dependencies, possibly have multiple releases, and most importantly the team is aware of what can be started right away |
@olha23 I think I like the second choice for output when running a transaction. |
We're closing this epic as it's mostly done. The remaining tasks can be tracked independantly. |
Our current implementation of the CLI is not consistent:
This epic aims to make the CLI consistent.
Issues by type
Standardize what we have
run
verb #2302Deprecation of the old architecture
New Features
all
resource #2304The text was updated successfully, but these errors were encountered: