Chromium Code Reviews| Index: ios/build/bots/scripts/test_runner.py |
| diff --git a/ios/build/bots/scripts/test_runner.py b/ios/build/bots/scripts/test_runner.py |
| index 1a98950a5108413b154dfe9ce9c9ef669d876ba4..9aa9bf935db57b744ac63c0e8f0145cfc55c5378 100644 |
| --- a/ios/build/bots/scripts/test_runner.py |
| +++ b/ios/build/bots/scripts/test_runner.py |
| @@ -8,6 +8,7 @@ import argparse |
| import collections |
| import errno |
| import os |
| +import plistlib |
| import shutil |
| import subprocess |
| import sys |
| @@ -22,15 +23,6 @@ import xctest_utils |
| DERIVED_DATA = os.path.expanduser('~/Library/Developer/Xcode/DerivedData') |
| -XCTEST_PROJECT = os.path.abspath(os.path.join( |
| - os.path.dirname(__file__), |
| - 'TestProject', |
| - 'TestProject.xcodeproj', |
| -)) |
| - |
| -XCTEST_SCHEME = 'TestProject' |
| - |
| - |
| class Error(Exception): |
| """Base class for errors.""" |
| pass |
| @@ -657,6 +649,25 @@ class DeviceTestRunner(TestRunner): |
| self.udid = subprocess.check_output(['idevice_id', '--list']).rstrip() |
| if len(self.udid.splitlines()) != 1: |
| raise DeviceDetectionError(self.udid) |
| + if xctest: |
| + self.xctestrun_file = tempfile.mkstemp()[1] |
| + self.xctestrun_data = { |
| + 'TestTargetName': { |
| + 'IsAppHostedTestBundle': True, |
| + 'TestBundlePath': '%s' % self.xctest_path, |
| + 'TestHostPath': '%s' % self.app_path, |
| + 'TestingEnvironmentVariables': { |
| + 'DYLD_INSERT_LIBRARIES': |
| + '__PLATFORMS__/iPhoneOS.platform/Developer/Library/' |
| + 'PrivateFrameworks/IDEBundleInjection.framework/IDEBundleInjection', |
| + 'DYLD_LIBRARY_PATH': |
| + '__PLATFORMS__/iPhoneOS.platform/Developer/Library', |
| + 'DYLD_FRAMEWORK_PATH': |
| + '__PLATFORMS__/iPhoneOS.platform/Developer/Library/Frameworks', |
| + 'XCInjectBundleInto':'__TESTHOST__/%s' % self.app_name |
| + } |
| + } |
| + } |
| def uninstall_apps(self): |
| """Uninstalls all apps found on the device.""" |
| @@ -672,9 +683,9 @@ class DeviceTestRunner(TestRunner): |
| def set_up(self): |
| """Performs setup actions which must occur prior to every test launch.""" |
| - self.uninstall_apps() |
| - self.wipe_derived_data() |
| - self.install_app() |
| +# self.uninstall_apps() |
| +# self.wipe_derived_data() |
| +# self.install_app() |
|
huangml1
2017/04/07 23:54:01
sorry.
|
| def extract_test_data(self): |
| """Extracts data emitted by the test.""" |
| @@ -723,13 +734,19 @@ class DeviceTestRunner(TestRunner): |
| A list of strings forming the command to launch the test. |
| """ |
| if self.xctest_path: |
| + if test_filter: |
| + if invert: |
| + self.xctestrun_data['TestTargetName'].update( |
| + {'SkipTestIdentifiers': test_filter}) |
| + else: |
| + self.xctestrun_data['TestTargetName'].update( |
| + {'OnlyTestIdentifiers': test_filter}) |
| + plistlib.writePlist(self.xctestrun_data, self.xctestrun_file) |
| return [ |
| 'xcodebuild', |
| 'test-without-building', |
| - 'BUILT_PRODUCTS_DIR=%s' % os.path.dirname(self.app_path), |
| + '-xctestrun', self.xctestrun_file, |
| '-destination', 'id=%s' % self.udid, |
| - '-project', XCTEST_PROJECT, |
| - '-scheme', XCTEST_SCHEME, |
| ] |
| cmd = [ |