@@ -546,6 +546,73 @@ ${changelog}`
546546 process . exit ( 1 )
547547 }
548548 } ,
549+
550+ async runnerCreateTests ( featureName ) {
551+ // create runner tests for feature
552+ const fs = require ( 'fs' ) . promises
553+ const path = require ( 'path' )
554+
555+ // Create directories
556+ const configDir = path . join ( 'test/data/sandbox/configs' , featureName )
557+ await fs . mkdir ( configDir , { recursive : true } )
558+
559+ // Create codecept config file
560+ const configContent = `exports.config = {
561+ tests: './*_test.js',
562+ output: './output',
563+ helpers: {
564+ FileSystem: {},
565+ },
566+ include: {},
567+ bootstrap: false,
568+ mocha: {},
569+ name: '${ featureName } tests'
570+ }
571+ `
572+ await fs . writeFile ( path . join ( configDir , `codecept.conf.js` ) , configContent )
573+
574+ // Create feature test file
575+ const testContent = `Feature('${ featureName } ');
576+
577+ Scenario('test ${ featureName } ', ({ I }) => {
578+ // Add test steps here
579+ });
580+ `
581+ await fs . writeFile ( path . join ( configDir , `${ featureName } _test.js` ) , testContent )
582+
583+ // Create runner test file
584+ const runnerTestContent = `const { expect } = require('expect')
585+ const exec = require('child_process').exec
586+ const { codecept_dir, codecept_run } = require('./consts')
587+ const debug = require('debug')('codeceptjs:tests')
588+
589+ const config_run_config = (config, grep, verbose = false) =>
590+ \`\${codecept_run} \${verbose ? '--verbose' : ''} --config \${codecept_dir}/configs/${ featureName } /\${config} \${grep ? \`--grep "\${grep}"\` : ''}\`
591+
592+ describe('CodeceptJS ${ featureName } ', function () {
593+ this.timeout(10000)
594+
595+ it('should run ${ featureName } test', done => {
596+ exec(config_run_config('codecept.conf.js'), (err, stdout) => {
597+ debug(stdout)
598+ expect(stdout).toContain('OK')
599+ expect(err).toBeFalsy()
600+ done()
601+ })
602+ })
603+ })
604+ `
605+ await fs . writeFile ( path . join ( 'test/runner' , `${ featureName } _test.js` ) , runnerTestContent )
606+
607+ console . log ( `Created test files for feature: ${ featureName } ` )
608+
609+ console . log ( 'Run codecept tests with:' )
610+ console . log ( `./bin/codecept.js run --config ${ configDir } /codecept.${ featureName } .conf.js` )
611+
612+ console . log ( '' )
613+ console . log ( 'Run tests with:' )
614+ console . log ( `npx mocha test/runner --grep ${ featureName } ` )
615+ } ,
549616}
550617
551618async function processChangelog ( ) {
0 commit comments