wallabyjs / public

Repository for Wallaby.js questions and issues
http://wallabyjs.com
759 stars 45 forks source link

Order of tests in test explorer #3106

Closed chlbri closed 1 year ago

chlbri commented 1 year ago

Issue description or question

In the test explorer, the order of tests is not the same inside my file. Image :

Capture d'écran 2022-11-18 à 11 47 53 AM

Wallaby diagnostics report

{
  editorVersion: '1.73.1',
  pluginVersion: '1.0.348',
  editorType: 'VSCode',
  osVersion: 'darwin 22.1.0',
  nodeVersion: 'v16.16.0',
  coreVersion: '1.0.1346',
  checksum: 'OWRlOGFhNTU3MzVhODUwZDA1YzNmMTg0ZmEyZDZkZTcsMTY2ODgxNjAwMDAwMCww',
  config: {
    slowTestThreshold: 500,
    runMode: 'onsave',
    lowCoverageThreshold: 70,
    resolveGetters: true,
    workers: { initial: 1, regular: 1, restart: false, recycle: false },
    hints: {
      ignoreCoverage: '__REGEXP /ignore coverage/',
      ignoreCoverageForFile: '__REGEXP /ignore file coverage/',
      commentAutoLog: '?',
      testFileSelection: { include: '__REGEXP /file\\.only/', exclude: '__REGEXP /file\\.skip/' }
    },
    diagnostics: {
      vitest: {
        file: {
          config: "import react from '@vitejs/plugin-react';\n" +
            "import tsconfigPaths from 'vite-tsconfig-paths';\n" +
            "import { defineConfig } from 'vitest/config';\n" +
            '\n' +
            'export default defineConfig({\n' +
            '  plugins: [tsconfigPaths(), react()],\n' +
            '  test: {\n' +
            '    globals: true,\n' +
            '  },\n' +
            '});\n'
        },
        config: {
          allowOnly: true,
          watch: true,
          globals: true,
          environment: 'node',
          threads: true,
          clearMocks: false,
          restoreMocks: false,
          mockReset: false,
          include: [ '**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}' ],
          exclude: [ '**/node_modules/**', '**/dist/**', '**/cypress/**', '**/.{idea,git,cache,output,temp}/**', '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress}.config.*' ],
          testTimeout: 5000,
          hookTimeout: 10000,
          teardownTimeout: 1000,
          isolate: true,
          watchExclude: [ '**/node_modules/**', '**/dist/**' ],
          forceRerunTriggers: [ '**/package.json/**', '**/{vitest,vite}.config.*/**' ],
          update: false,
          reporters: [ 'default' ],
          silent: false,
          ui: false,
          uiBase: '/__vitest__/',
          open: true,
          css: { include: [], modules: { classNameStrategy: 'stable' } },
          coverage: {
            provider: 'c8',
            enabled: false,
            clean: true,
            cleanOnRerun: false,
            reportsDirectory: './coverage',
            excludeNodeModules: true,
            exclude: [
              'coverage/**',
              'dist/**',
              'packages/*/test{,s}/**',
              '**/*.d.ts',
              'cypress/**',
              'test{,s}/**',
              'test{,-*}.{js,cjs,mjs,ts,tsx,jsx}',
              '**/*{.,-}test.{js,cjs,mjs,ts,tsx,jsx}',
              '**/*{.,-}spec.{js,cjs,mjs,ts,tsx,jsx}',
              '**/__tests__/**',
              '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress}.config.*',
              '**/.{eslint,mocha,prettier}rc.{js,cjs,yml}'
            ],
            reporter: [ 'text', 'html', 'clover', 'json' ],
            allowExternal: false,
            extension: [
              '.js',  '.cjs',
              '.mjs', '.ts',
              '.tsx', '.jsx',
              '.vue', '.svelte'
            ]
          },
          fakeTimers: { loopLimit: 10000, shouldClearNativeTimers: true, toFake: [ 'setTimeout', 'clearTimeout', 'setInterval', 'clearInterval', 'setImmediate', 'clearImmediate', 'Date' ] },
          maxConcurrency: 5,
          dangerouslyIgnoreUnhandledErrors: false,
          typecheck: {
            checker: 'tsc',
            include: [ '**/*.{test,spec}-d.{ts,js}' ],
            exclude: [ '**/node_modules/**', '**/dist/**', '**/cypress/**', '**/.{idea,git,cache,output,temp}/**', '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress}.config.*' ]
          },
          defines: {},
          root: '<homeDir>/Documents/github/NODE JS/Libraries-bemedev/sleep',
          mode: [],
          deps: { inline: [ {}, {}, {}, {}, {}, {}, '@nuxt/test-utils' ], registerNodeLoader: false },
          snapshotOptions: { snapshotFormat: {}, updateSnapshot: 'new' },
          setupFiles: [],
          cache: { dir: '<homeDir>/Documents/github/NODE JS/Libraries-bemedev/sleep/node_modules/.vitest' },
          sequence: { hooks: 'parallel' },
          package: {
            version: '0.25.2',
            urls: { hooks: 'file://<homeDir>/.vscode/extensions/wallabyjs.wallaby-vscode-1.0.348/wallabyb03df9/runners/node/hooks.mjs' },
            paths: {
              root: '<homeDir>/Documents/github/NODE JS/Libraries-bemedev/sleep/node_modules/.pnpm/vitest@0.25.2/node_modules/vitest',
              dist: '<homeDir>/Documents/github/NODE JS/Libraries-bemedev/sleep/node_modules/.pnpm/vitest@0.25.2/node_modules/vitest/dist'
            }
          }
        }
      }
    },
    testFramework: { version: 'vitest@0.14.0', configurator: 'vitest@0.14.0', reporter: 'vitest@0.14.0', starter: 'vitest@0.14.0', autoDetected: true },
    preserveComments: false,
    extractComments: true,
    files: [
      { pattern: '**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}', ignore: true, trigger: true, load: true, file: true },
      { pattern: '**/node_modules/**', ignore: true, trigger: true, load: true, file: true, test: true },
      { pattern: '**/dist/**', ignore: true, trigger: true, load: true, file: true, test: true },
      { pattern: '**/cypress/**', ignore: true, trigger: true, load: true, file: true, test: true },
      { pattern: '**/.{idea,git,cache,output,temp}/**', ignore: true, trigger: true, load: true, file: true, test: true },
      { pattern: '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress}.config.*', ignore: true, trigger: true, load: true, file: true, test: true },
      { pattern: '**/*.*', ignore: false, trigger: true, load: true, order: 1 }
    ],
    tests: [
      { pattern: '**/node_modules/**', ignore: true, trigger: true, load: true, test: true, file: false },
      { pattern: '**/dist/**', ignore: true, trigger: true, load: true, test: true, file: false },
      { pattern: '**/cypress/**', ignore: true, trigger: true, load: true, test: true, file: false },
      { pattern: '**/.{idea,git,cache,output,temp}/**', ignore: true, trigger: true, load: true, test: true, file: false },
      { pattern: '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress}.config.*', ignore: true, trigger: true, load: true, test: true, file: false },
      { pattern: '**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}', ignore: false, trigger: true, load: true, test: true, order: 2 }
    ],
    filesWithNoCoverageCalculated: [],
    runAllTestsInAffectedTestFile: false,
    updateNoMoreThanOneSnapshotPerTestFileRun: false,
    compilers: {},
    logLimits: { inline: { depth: 5, elements: 5000 }, values: { default: { stringLength: 200 }, autoExpand: { elements: 5000, stringLength: 8192, depth: 10 } } },
    preprocessors: {},
    maxConsoleMessagesPerTest: 100,
    autoConsoleLog: true,
    delays: { run: 0, edit: 100, update: 0 },
    teardown: undefined,
    automaticTestFileSelection: true,
    runSelectedTestsOnly: false,
    mapConsoleMessagesStackTrace: false,
    extensions: {},
    env: {
      type: 'node',
      params: { runner: '--experimental-loader=file://<homeDir>/.vscode/extensions/wallabyjs.wallaby-vscode-1.0.348/wallabyb03df9/runners/node/hooks.mjs' },
      runner: '<homeDir>/.nvm/versions/node/v16.16.0/bin/node',
      viewportSize: { width: 800, height: 600 },
      options: { width: 800, height: 600 },
      bundle: true
    },
    reportUnhandledPromises: true,
    runAllTestsWhenNoAffectedTests: true,
    symlinkNodeModules: undefined,
    configCode: '// eslint-disable-next-line @typescript-eslint/no-unused-vars\n' +
      'module.exports = function (_wallaby) {\n' +
      '  return {\n' +
      '    slowTestThreshold: 500, // 200 ms\n' +
      "    runMode: 'onsave',\n" +
      '    lowCoverageThreshold: 70,\n' +
      '    resolveGetters: true,\n' +
      '    workers: {\n' +
      '      initial: 6,\n' +
      '      regular: 3,\n' +
      '      restart: false,\n' +
      '    },\n' +
      '    hints: {\n' +
      '      // or /istanbul ignore next/, or any RegExp\n' +
      '      ignoreCoverage: /ignore coverage/,\n' +
      '    },\n' +
      '  };\n' +
      '};\n'
  },
  packageJSON: {
    dependencies: undefined,
    devDependencies: {
      '@typescript-eslint/eslint-plugin': '^5.43.0',
      '@typescript-eslint/parser': '^5.43.0',
      '@vitejs/plugin-react': '^2.2.0',
      esbuild: '^0.15.14',
      eslint: '^8.27.0',
      husky: '^8.0.2',
      onchange: '^7.1.0',
      prettier: '^2.7.1',
      'pretty-quick': '^3.1.3',
      rollup: '^3.3.0',
      'rollup-plugin-dts': '^5.0.0',
      'rollup-plugin-esbuild': '^5.0.0',
      'rollup-plugin-terser': '^7.0.2',
      'rollup-plugin-typescript2': '^0.34.1',
      typescript: '^4.9.3',
      vite: '^3.2.4',
      'vite-tsconfig-paths': '^3.5.2',
      vitest: '^0.25.2'
    }
  },
  fs: { numberOfFiles: 7 },
  debug: []
}
smcenlly commented 1 year ago

This is intentional / by design. The tests are displayed in alphabetical order in the test explorer.

chlbri commented 1 year ago

Ok, I see, maybe I can add number at the beginning

smcenlly commented 1 year ago

You could do something like that if the order is important to maintain. Just remember that the tests are sorted alphabetically so if you have more than 10 tests in a file, you would want to pad them with '0' at the start (for example: 001 - Advance time by TIME)