1
votes

I am creating few UI tests for iOS using Detox. Initially, iOS tests ran all fine. [Note- there're no Android tests, whatsoever, currently]

Config.json
{
    "setupTestFrameworkScriptFile": "./init.js",
    "testEnvironment": "node"
}

package.json snippet:

"detox": {
"configurations": {
  "ios.sim.debug": {
    "binaryPath": "/Users/laxmisomni/Documents/Projects/mambo/ios/build/Build/Products/Debug-iphonesimulator/mambo.app",
    "build": "xcodebuild -workspace ios/appName.xcworkspace -scheme appName -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build",
    "type": "ios.simulator",
    "name": "iPhone 7"
  }
},
"test-runner": "jest",
"specs": "e2e"
},

Error:

Ran all test suites matching /e2e/i with tests matching "^((?!:android:).)*$".
child_process.js:651
    throw err;
    ^

Error: Command failed: node_modules/.bin/jest e2e --config=e2e/config.json --maxWorkers=1 '--testNamePattern=^((?!:android:).)*$'
    at checkExecSyncError (child_process.js:611:11)

Other dependencies in Package.json:
    "babel-eslint": "^8.2.3",
    "babel-jest": "23.0.1",
    "babel-preset-react-native": "4.0.0",
    "babel-register": "^6.26.0",

Is there any way to disable, test runner trying to run non-existent Android tests?

1

1 Answers

1
votes

Detox isn't running an android test. It only looks like that because of the negative lookahead in the regex.

--testNamePattern='^((?!:android:).)*$'

Here is the output from a successful iOS test that I ran.

detox test
node_modules/.bin/jest e2e --config=e2e/config.json --maxWorkers=1 --testNamePattern='^((?!:android:).)*$'

 server listening on localhost:55356...

 : Searching for device matching iPhone 7...

 : Uninstalling com.testapp.test...

 : com.testapp.test uninstalled
 : Installing /Users/work/Documents/test/ios/build/Build/Products/Debug-iphonesimulator/test.app...
 : /Users/work/Documents/test/ios/build/Build/Products/Debug-iphonesimulator/test.app installed
 : Terminating  com.testapp.test...
 : com.testapp.test terminated
 : Launching  com.testapp.test...
7: com.testapp.test launched. The stdout and stderr logs were recreated, you can watch them with:
        tail -F /Users/work/Library/Developer/CoreSimulator/Devices/AF406169-5CF3-4480-9D00-8F934C420043/data/tmp/detox.last_launch_app_log.{out,err}
 PASS  e2e/firstTest.spec.js (10.504s)
  Example
    ✓ should have Home tab (1283ms)
    ✓ should show detail screen after tap (1872ms)

Test Suites: 1 passed, 1 total
Tests:       2 passed, 2 total
Snapshots:   0 total
Time:        11.153s, estimated 12s
Ran all test suites matching /e2e/i with tests matching "^((?!:android:).)*$".

With regard to your tests failing, without seeing the full output from the log we cannot help you.