Skip to content

Run Tests

Jacky Sun edited this page May 30, 2024 · 29 revisions

Sure, here is the text formatted with Markdown tags:

We introduce a new way to run nala tests

Usage:

node run.js [options]

Options:

  • -p, --project: Specify the project to run tests on, e.g., milo-live-chrome. Use 'all' for all projects or a comma-separated list of projects.
  • -c, --config: Specify the name of the configuration file, e.g., milo.
  • -g, --grep: Filter tests by grep pattern, e.g., '@milo'.
  • -r, --reporter: Specify the reporter to use, e.g., 'html'.
  • -h, --help: Display this help message and exit.
  • --headed: Run tests in headed mode.
  • --headless: Run tests in headless mode (default).

Examples:

  • Run uar test on uar-live:

    node run.js -c uar -g "@uar-quiz-basic-milo" -p uar-live-chrome
  • Run uar test on milo-live:

    node run.js -c uar -g "@uar-quiz-basic-milo" -p milo-live-chrome
  • Run milo test on milo-live:

    node run.js -c milo -g "@milo" -p milo-live-chrome
  • You can also use '=':

    node run.js -c=milo -g="@milo" -p=milo-live-chrome
  • Or long options:

    node run.js --config=milo --grep="@milo" --project=milo-live-chrome
  • Support run on all projects with -p 'all':

    node run.js -c milo -p all -g "@milo"
  • Support run some projects with a comma-separated list of projects:

    node run.js -c milo -p milo-live-chrome,milo-live-firefox -g "@milo"

Some rules:

We set testDir: '../tests/xxx' in xxx.config.js to control test scopes. In other words, you can't run others' tests, but you can run your tests on different websites.

For example, if you want to run milo tests on all bacom, you need to add this into milo.config.js:

{
  name: 'bacom-live-chrome',
  use: {
    ...devices['Desktop Chrome'],
    baseURL: envs['@bacom_live'],
  },
},
{
  name: 'bacom-live-firefox',
  use: {
    ...devices['Desktop Firefox'],
    baseURL: envs['@bacom_live'],
  },
},
{
  name: 'bacom-live-webkit',
  use: {
    ...devices['Desktop Safari'],
    baseURL: envs['@bacom_live'],
  },
},
Clone this wiki locally