Установка переменных среды в TestCafe, дающих неопределенное значение - PullRequest
3 голосов
/ 27 февраля 2020

Я изучаю TestCafe, и я новичок в этом.

Я пытаюсь следовать, как указано здесь: https://devexpress.github.io/testcafe/documentation/recipes/access-environment-variables-in-tests.html

У меня есть код который работает на моем windows компьютере !!

fixture`Getting Started`.page`http://devexpress.github.io/testcafe/example`;

test("My First Test", async t => {
    await t
    .typeText('#developer-name', 'John Smith')
    .click('#submit-button')
    .takeScreenshot();

    const articleHeader = await Selector('.result-content').find('h1');

    // Obtain the text of the article header
    let headerText = await articleHeader.innerText;
    console.log(process.env.DEV_MODE);
});

Мой раздел сценариев выглядит так

"scripts": {
    "setnode": "set DEV_MODE=staging",
    "test:chrome": "npm run setnode & npx testcafe \"chrome --start-fullscreen\" e2e/tests"
  }

, когда я запускаю эту команду npm run test:chrome

I я получаю вывод, подобный этому

dynatrace-testcafe-poc@1.0.0 setnode C:\TestCafeProjects\dynatrace-testcafe-poc set DEV_MODE=staging

 Running tests in:
 - Chrome 79.0.3945.130 / Windows 10

Getting Started  

undefined   

√ My First Test

, почему console.log пишет как undefined вместо постановки?

1 Ответ

4 голосов
/ 28 февраля 2020

Символ амперсанда (&) в вашем скрипте запускает их параллельно. Однако вам нужно запускать их последовательно, используя операнд &&.

Кроме того, сценарии npm порождают процесс оболочки под капотом (cmd на Windows) и переменную, установленную set Команда живет только в своем сеансе. Следующий скрипт должен работать:

"scripts": {        
    "test:chrome": "set DEV_MODE=staging && npx testcafe \"chrome --start-fullscreen\" e2e/tests"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...