@@ -4,6 +4,7 @@ const path = require('path');
44const { fork } = require ( 'child_process' ) ;
55const _options = require ( "../.testcaferc.js" )
66const upload = require ( '../bin/upload-file' ) ;
7+ const minimist = require ( 'minimist' ) ;
78const options = {
89 ..._options ,
910 browsers : process . env . E2E_DEV ? [ 'firefox' ] : [ 'firefox:headless' ] ,
@@ -16,6 +17,15 @@ if (fs.existsSync(dir)) {
1617 fs . rmdirSync ( dir , { recursive : true } ) ;
1718}
1819const start = Date . now ( ) . valueOf ( ) ;
20+ // Parse CLI arg --meta-filter
21+ const args = minimist ( process . argv . slice ( 2 ) ) ;
22+ const filterString = args [ 'meta-filter' ] ; // "type=smoke,priority=high"
23+ const metaConditions = ( filterString || '' )
24+ . split ( ',' )
25+ . map ( pair => {
26+ const [ key , value ] = pair . split ( '=' ) ;
27+ return { key, value } ;
28+ } ) ;
1929createTestCafe ( )
2030 . then ( async ( tc ) => {
2131 testcafe = tc ;
@@ -40,6 +50,13 @@ createTestCafe()
4050 . clientScripts ( 'e2e/add-error-logs.js' )
4151 . src ( [ './e2e/init.cafe.js' ] )
4252 . concurrency ( parseInt ( concurrentInstances ) )
53+ . filter ( ( _testName , _fixtureName , _fixturePath , testMeta , fixtureMeta ) => {
54+ return metaConditions . some ( ( { key, value } ) => {
55+ return (
56+ testMeta [ key ] === value || fixtureMeta [ key ] === value
57+ ) ;
58+ } ) ;
59+ } )
4360 . run ( options )
4461 } )
4562 . then ( async ( v ) => {
0 commit comments