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

Side by Side Diff: build/android/pylib/junit/test_runner.py

Issue 2498553004: Add support for Junit tests in platform mode. (Closed)
Patch Set: Created 4 years, 1 month 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 unified diff | Download patch
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import json 5 import json
6 import os 6 import os
7 import tempfile 7 import tempfile
8 8
9 from devil.utils import cmd_helper 9 from devil.utils import cmd_helper
10 from pylib import constants 10 from pylib import constants
11 from pylib.results import json_results 11 from pylib.results import json_results
12 12
13 class JavaTestRunner(object): 13 class JavaTestRunner(object):
14 """Runs java tests on the host.""" 14 """Runs java tests on the host."""
15 15
16 def __init__(self, args): 16 def __init__(self, args):
17 self._coverage_dir = args.coverage_dir 17 self._coverage_dir = args.coverage_dir
18 self._package_filter = args.package_filter 18 self._package_filter = args.package_filter
19 self._runner_filter = args.runner_filter 19 self._runner_filter = args.runner_filter
20 self._sdk_version = args.sdk_version 20
21 self._test_filter = args.test_filter 21 self._test_filter = args.test_filter
22 self._test_suite = args.test_suite 22 self._test_suite = args.test_suite
23 23
24 def SetUp(self): 24 def SetUp(self):
25 pass 25 pass
26 26
27 def RunTest(self, _test): 27 def RunTest(self, _test):
28 """Runs junit tests from |self._test_suite|.""" 28 """Runs junit tests from |self._test_suite|."""
29 with tempfile.NamedTemporaryFile() as json_file: 29 with tempfile.NamedTemporaryFile() as json_file:
30 java_script = os.path.join( 30 java_script = os.path.join(
31 constants.GetOutDirectory(), 'bin', 'helper', self._test_suite) 31 constants.GetOutDirectory(), 'bin', 'helper', self._test_suite)
32 command = [java_script] 32 command = [java_script]
33 33
34 # Add Jar arguments. 34 # Add Jar arguments.
35 jar_args = ['-test-jars', self._test_suite + '.jar', 35 jar_args = ['-test-jars', self._test_suite + '.jar',
36 '-json-results-file', json_file.name] 36 '-json-results-file', json_file.name]
37 if self._test_filter: 37 if self._test_filter:
38 jar_args.extend(['-gtest-filter', self._test_filter]) 38 jar_args.extend(['-gtest-filter', self._test_filter])
39 if self._package_filter: 39 if self._package_filter:
40 jar_args.extend(['-package-filter', self._package_filter]) 40 jar_args.extend(['-package-filter', self._package_filter])
41 if self._runner_filter: 41 if self._runner_filter:
42 jar_args.extend(['-runner-filter', self._runner_filter]) 42 jar_args.extend(['-runner-filter', self._runner_filter])
43 if self._sdk_version:
mikecase (-- gone --) 2016/11/11 22:16:23 I have no idea what this arg was used for. But it
44 jar_args.extend(['-sdk-version', self._sdk_version])
45 command.extend(['--jar-args', '"%s"' % ' '.join(jar_args)]) 43 command.extend(['--jar-args', '"%s"' % ' '.join(jar_args)])
46 44
47 # Add JVM arguments. 45 # Add JVM arguments.
48 jvm_args = [] 46 jvm_args = []
49 # TODO(mikecase): Add a --robolectric-dep-dir arg to test runner. 47 # TODO(mikecase): Add a --robolectric-dep-dir arg to test runner.
50 # Have this arg set by GN in the generated test runner scripts. 48 # Have this arg set by GN in the generated test runner scripts.
51 jvm_args += [ 49 jvm_args += [
52 '-Drobolectric.dependency.dir=%s' % 50 '-Drobolectric.dependency.dir=%s' %
53 os.path.join(constants.GetOutDirectory(), 51 os.path.join(constants.GetOutDirectory(),
54 'lib.java', 'third_party', 'robolectric')] 52 'lib.java', 'third_party', 'robolectric')]
55 if self._coverage_dir: 53 if self._coverage_dir:
56 if not os.path.exists(self._coverage_dir): 54 if not os.path.exists(self._coverage_dir):
57 os.makedirs(self._coverage_dir) 55 os.makedirs(self._coverage_dir)
58 elif not os.path.isdir(self._coverage_dir): 56 elif not os.path.isdir(self._coverage_dir):
59 raise Exception('--coverage-dir takes a directory, not file path.') 57 raise Exception('--coverage-dir takes a directory, not file path.')
60 jvm_args.append('-Demma.coverage.out.file=%s' % os.path.join( 58 jvm_args.append('-Demma.coverage.out.file=%s' % os.path.join(
61 self._coverage_dir, '%s.ec' % self._test_suite)) 59 self._coverage_dir, '%s.ec' % self._test_suite))
62 if jvm_args: 60 if jvm_args:
63 command.extend(['--jvm-args', '"%s"' % ' '.join(jvm_args)]) 61 command.extend(['--jvm-args', '"%s"' % ' '.join(jvm_args)])
64 62
65 return_code = cmd_helper.RunCmd(command) 63 return_code = cmd_helper.RunCmd(command)
66 results_list = json_results.ParseResultsFromJson( 64 results_list = json_results.ParseResultsFromJson(
67 json.loads(json_file.read())) 65 json.loads(json_file.read()))
68 return (results_list, return_code) 66 return (results_list, return_code)
69 67
70 def TearDown(self): 68 def TearDown(self):
71 pass 69 pass
72 70
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698