git.iko.soy/typeable/elm-ui
on master help sign in
add --ie and --edge options for locally running test on windows
027f8ecMatthew Griffith
tests/automation/run.js+50−17
@@ -9,8 +9,10 @@ const chalk = require('chalk');
9const childProcess = require('child_process')
9const childProcess = require('child_process')
10
10
11program.option('-s, --sauce', 'run tests on sauce labs')
11program.option('-s, --sauce', 'run tests on sauce labs')
12− .option('--chrome', 'run only chrome tests')
12+ .option('--chrome', 'run chrome tests (default)')
13− .option('--firefox', 'run only firefox tests')
13+ .option('--firefox', 'run firefox tests')
14+ .option('--ie', 'run ie tests')
15+ .option('--edge', 'run edge tests')
14 .option('--build [value]', 'Set build number for sauce labs')
16 .option('--build [value]', 'Set build number for sauce labs')
15 .option('--name [value]', 'Set run name for sauce labs')
17 .option('--name [value]', 'Set run name for sauce labs')
16 .option('--verbose', 'Print out all test results')
18 .option('--verbose', 'Print out all test results')
@@ -18,23 +20,36 @@ program.option('-s, --sauce', 'run tests on sauce labs')
18
20
19
21
20// 'Windows 10'
22// 'Windows 10'
23+
24+
21−const windows = [
25+const windows = {
22− {
26+ chrome: {
27+ platform: "Windows 10"
23− browser: "chrome"
28+ , browser: "chrome"
24 , browserVersion: "latest"
29 , browserVersion: "latest"
25 },
30 },
26− {
31+ firefox: {
32+ platform: "Windows 10"
27− browser: "firefox"
33+ , browser: "firefox"
28 , browserVersion: "latest"
34 , browserVersion: "latest"
29 },
35 },
30− {
36+ edge: {
37+ platform: "Windows 10"
31− browser: "MicrosoftEdge"
38+ , browser: "MicrosoftEdge"
32 , browserVersion: "latest"
39 , browserVersion: "latest"
33 },
40 },
34− {
41+ ie: {
42+ platform: "Windows 10"
35− browser: "internet explorer"
43+ , browser: "internet explorer"
36 , browserVersion: "latest"
44 , browserVersion: "latest"
37 }
45 }
46+}
47+
48+const all_windows = [
49+ windows.chrome
50+ , windows.firefox
51+ , windows.edge
52+ , windows.ie
38]
53]
39
54
40// "macOS 10.14"
55// "macOS 10.14"
@@ -56,15 +71,23 @@ const osx = {
56 }
71 }
57}
72}
58
73
74+const all_osx = [
75+ osx.chrome
76+ , osx.firefox
77+ , osx.safari
78+]
79+
80+const all_browsers =
81+ all_windows.concat(all_osx)
59
82
60function prepare_all_envs(config) {
83function prepare_all_envs(config) {
61 var envs = []
84 var envs = []
62
85
63− for (i = 0; i < windows.length; i++) {
86+ for (i = 0; i < all_windows.length; i++) {
64 envs.push({
87 envs.push({
65 browser: windows[i].browser,
88 browser: windows[i].browser,
66 browserVersion: windows[i].browserVersion,
89 browserVersion: windows[i].browserVersion,
67− platform: "Windows 10",
90+ platform: winddows[i].platform,
68 build: config.build,
91 build: config.build,
69 name: config.name
92 name: config.name
70 })
93 })
@@ -148,14 +171,14 @@ async function run_test(driver, url) {
148 if (!fs.existsSync(dir)) {
171 if (!fs.existsSync(dir)) {
149 fs.mkdirSync(dir);
172 fs.mkdirSync(dir);
150 }
173 }
151−
174+ console.log("Compiling tests")
152 await compile_and_embed({
175 await compile_and_embed({
153 template: "./tests/automation/templates/gather-styles.html",
176 template: "./tests/automation/templates/gather-styles.html",
154 target: "./tmp/test.html",
177 target: "./tmp/test.html",
155 elm: ["Tests/Run.elm"],
178 elm: ["Tests/Run.elm"],
156 elmOptions: { cwd: "./tests" }
179 elmOptions: { cwd: "./tests" }
157 })
180 })
158− console.log("Tests done compiling")
181+ console.log("Done compiling")
159
182
160 if (program.sauce) {
183 if (program.sauce) {
161 const build = program.build
184 const build = program.build
@@ -194,7 +217,6 @@ async function run_test(driver, url) {
194 }
217 }
195
218
196 } else {
219 } else {
197−
198 // Run chrome if nothing else is selected
220 // Run chrome if nothing else is selected
199 if (program.chrome || (!program.chrome && !program.firefox)) {
221 if (program.chrome || (!program.chrome && !program.firefox)) {
200 console.log("Running locally on Chrome...")
222 console.log("Running locally on Chrome...")
@@ -208,7 +230,18 @@ async function run_test(driver, url) {
208 var results = await run_test(driver, "file://" + path.resolve('./tmp/test.html'))
230 var results = await run_test(driver, "file://" + path.resolve('./tmp/test.html'))
209 print_results("Local Firefox", results);
231 print_results("Local Firefox", results);
210 }
232 }
211−
233+ if (program.ie) {
234+ console.log("Running locally on IE...")
235+ const driver = await prepare_local_driver(windows.ie)
236+ var results = await run_test(driver, "file://" + path.resolve('./tmp/test.html'))
237+ print_results("Local IE", results);
238+ }
239+ if (program.edge) {
240+ console.log("Running locally on Edge...")
241+ const driver = await prepare_local_driver(windows.edge)
242+ var results = await run_test(driver, "file://" + path.resolve('./tmp/test.html'))
243+ print_results("Local Edge", results);
244+ }
212 }
245 }
213})();
246})();
214
247