Как Gauge_clear_state_level работает с Javascript и Typescript?

Я пытаюсь понять, как 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.

Я ожидал, что оба счетчика сбрасываются после каждого сценария, но вывод выше показывает, что это не так.

Любые идеи или предложения кто-нибудь?


person F7502    schedule 10.12.2019    source источник


Ответы (1)


Я провел еще несколько исследований и покопался в коде соответствующих бегунов языка Gauge. Я не нашел никакого использования свойства gauge_clear_state_level. Я поднял вопрос в проекте Gauge, чтобы соответствующим образом обновить документацию. Они подтвердили мои выводы и удалили свойство gauge_clear_state_level из документации.

https://github.com/getgauge/docs.gauge.org/issues/ 291

Свойство gauge_clear_state_level зависит от языка, в настоящее время оно поддерживается только исполнителями языков Java и .NET. Для всех других языков можно использовать хранилища данных для управления жизненным циклом информации о состоянии.

person F7502    schedule 18.12.2019