Я пытаюсь понять, как Gauge обрабатывает одновременное выполнение тестов и как он управляет состоянием. Однако я не понимаю, как должен работать gauge_clear_state_level
. Я создал два небольших примера в Javascript, а также в Typescript, и для обоих я не вижу никакого эффекта.
В моем default.properties
это установлено следующим образом:
...
gauge_clear_state_level = scenario
...
Это моя тестовая спецификация:
# Example specification A
## Example scenario A1
* foo "A1"
* bar "A1"
* foo "A1"
## Example scenario A2
* bar "A2"
* foo "A2"
* bar "A2"
Реализация на Typescript выглядит так:
import { Step } from "gauge-ts";
export default class StepImplementation {
private fooCounter: number = 0;
private barCounter: number = 0;
@Step("foo <x>")
public async foo(x: string) {
await delay(1000);
this.fooCounter++;
console.log("foo " + x + " (" + this.fooCounter + ")")
}
@Step("bar <x>")
public async bar(x: string) {
await delay(1000);
this.barCounter++;
console.log("bar " + x + " (" + this.barCounter + ")")
}
}
// https://stackoverflow.com/a/37764963
function delay(ms: number) {
return new Promise( resolve => setTimeout(resolve, ms) );
}
Когда я запускаю спецификацию, вывод:
Running tool: gauge.cmd run c:\....\specs\exampleA.spec --simple-console --hide-suggestion
"Windows support is not tested yet. There might be some issues."
# Example specification A
## Example scenario A1
foo A1 (1)
bar A1 (1)
foo A1 (2)
## Example scenario A2
bar A2 (2)
foo A2 (3)
bar A2 (3)
Successfully generated html-report to => c:\....\reports\html-report\index.html
Specifications: 1 executed 1 passed 0 failed 0 skipped
Scenarios: 2 executed 2 passed 0 failed 0 skipped
Total time taken: 6.424s
Success: Tests passed.
Я ожидал, что оба счетчика сбрасываются после каждого сценария, но вывод выше показывает, что это не так.
Любые идеи или предложения кто-нибудь?