LEFT | RIGHT |
1 /* | 1 /* |
2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
3 * Copyright (C) 2006-present eyeo GmbH | 3 * Copyright (C) 2006-present eyeo GmbH |
4 * | 4 * |
5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
8 * | 8 * |
9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 } | 146 } |
147 }).then(bundle => | 147 }).then(bundle => |
148 Promise.all( | 148 Promise.all( |
149 processes.map(currentProcess => | 149 processes.map(currentProcess => |
150 runnerDefinitions[currentProcess]( | 150 runnerDefinitions[currentProcess]( |
151 bundle, bundleFilename, | 151 bundle, bundleFilename, |
152 browserFiles.map( | 152 browserFiles.map( |
153 file => path.relative(path.join(__dirname, "test", "browser"), | 153 file => path.relative(path.join(__dirname, "test", "browser"), |
154 file).replace(/\.js$/, "") | 154 file).replace(/\.js$/, "") |
155 ) | 155 ) |
156 ).catch(error => Promise.reject( | |
157 `Unit test "${currentProcess}" failed: ${error}`) | |
158 ) | 156 ) |
159 ) | 157 // We need to convert rejected promise to a resolved one |
160 ) | 158 // or the test will not let close the webdriver. |
| 159 .catch(e => e) |
| 160 )).then(results => |
| 161 { |
| 162 let errors = results.filter(e => typeof e != "undefined"); |
| 163 if (errors.length) |
| 164 throw `Browser unit test failed: ${errors.join(", ")}`; |
| 165 }) |
161 ); | 166 ); |
162 } | 167 } |
163 | 168 |
164 if (process.argv.length > 2) | 169 if (process.argv.length > 2) |
165 addTestPaths(process.argv.slice(2), true); | 170 addTestPaths(process.argv.slice(2), true); |
166 else | 171 else |
167 { | 172 { |
168 addTestPaths( | 173 addTestPaths( |
169 [path.join(__dirname, "test"), path.join(__dirname, "test", "browser")], | 174 [path.join(__dirname, "test"), path.join(__dirname, "test", "browser")], |
170 true | 175 true |
171 ); | 176 ); |
172 } | 177 } |
173 | 178 |
174 Promise.resolve(runBrowserTests(runnerProcesses)).then(() => | 179 runBrowserTests(runnerProcesses).then(() => |
175 { | 180 { |
176 if (unitFiles.length) | 181 if (unitFiles.length) |
177 nodeunit.reporters.default.run(unitFiles); | 182 nodeunit.reporters.default.run(unitFiles); |
178 }).catch(error => | 183 }).catch(error => |
179 { | 184 { |
180 if (!error) | 185 console.error(error); |
181 console.error("Failed running browser tests"); | |
182 else | |
183 console.error(error); | |
184 process.exit(1); | 186 process.exit(1); |
185 }); | 187 }); |
LEFT | RIGHT |