OLD | NEW |
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 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 use: ["script-loader"] | 138 use: ["script-loader"] |
139 }] | 139 }] |
140 }, | 140 }, |
141 resolve: { | 141 resolve: { |
142 alias: { | 142 alias: { |
143 nodeunit$: nodeunitPath | 143 nodeunit$: nodeunitPath |
144 }, | 144 }, |
145 modules: [path.resolve(__dirname, "lib")] | 145 modules: [path.resolve(__dirname, "lib")] |
146 } | 146 } |
147 }).then(bundle => | 147 }).then(bundle => |
148 Promise.all( | 148 Promise.all(processes.map(currentProcess => |
149 processes.map(currentProcess => | |
150 runnerDefinitions[currentProcess]( | 149 runnerDefinitions[currentProcess]( |
151 bundle, bundleFilename, | 150 bundle, bundleFilename, |
152 browserFiles.map( | 151 browserFiles.map( |
153 file => path.relative(path.join(__dirname, "test", "browser"), | 152 file => path.relative(path.join(__dirname, "test", "browser"), |
154 file).replace(/\.js$/, "") | 153 file).replace(/\.js$/, "") |
155 ) | 154 ) |
156 ) | 155 ) |
157 ) | 156 // We need to convert rejected promise to a resolved one |
158 ) | 157 // or the test will not let close the webdriver. |
| 158 .catch(e => e) |
| 159 )).then(results => |
| 160 { |
| 161 let errors = results.filter(e => typeof e != "undefined"); |
| 162 if (errors.length) |
| 163 return Promise.reject(`Unit test failed: ${errors.join(", ")}`); |
| 164 }) |
159 ); | 165 ); |
160 } | 166 } |
161 | 167 |
162 if (process.argv.length > 2) | 168 if (process.argv.length > 2) |
163 addTestPaths(process.argv.slice(2), true); | 169 addTestPaths(process.argv.slice(2), true); |
164 else | 170 else |
165 { | 171 { |
166 addTestPaths( | 172 addTestPaths( |
167 [path.join(__dirname, "test"), path.join(__dirname, "test", "browser")], | 173 [path.join(__dirname, "test"), path.join(__dirname, "test", "browser")], |
168 true | 174 true |
169 ); | 175 ); |
170 } | 176 } |
171 | 177 |
172 Promise.resolve(runBrowserTests(runnerProcesses)).catch(error => | 178 runBrowserTests(runnerProcesses).then(() => |
173 { | |
174 console.error("Failed running browser tests"); | |
175 console.error(error); | |
176 }).then(() => | |
177 { | 179 { |
178 if (unitFiles.length) | 180 if (unitFiles.length) |
179 nodeunit.reporters.default.run(unitFiles); | 181 nodeunit.reporters.default.run(unitFiles); |
| 182 }).catch(error => |
| 183 { |
| 184 if (!error) |
| 185 console.error("Failed running browser tests"); |
| 186 else |
| 187 console.error(error); |
| 188 process.exit(1); |
180 }); | 189 }); |
OLD | NEW |