Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(218)

Unified Diff: ios/build/bots/scripts/test_runner.py

Issue 2805133005: Support running eg tests with xctestrun file on devices. (Closed)
Patch Set: test-filter Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 = [

Powered by Google App Engine
This is Rietveld 408576698