質問編集履歴

2

回答を受けての追記

2016/05/23 06:06

投稿

poyopi
poyopi

スコア113

test CHANGED
File without changes
test CHANGED
@@ -115,3 +115,19 @@
115
115
  ```
116
116
 
117
117
  きれいではないと思うのですが、実行したくないテストケースについて@Ignoreで明示的に行わないようにしています。JUnitの本来の使い方としては、```src/main/java```内のモジュールを切り出してテストするような用途だとは思っているのですが、書いているうちに混乱してきてしまっていて、ご助言を賜りたい次第です。情報不足でしたら、ご指摘ください。
118
+
119
+
120
+
121
+ ---
122
+
123
+ [再追記]
124
+
125
+ [argius](https://teratail.com/users/argius)さんよりご回答いただいて1ヶ月超過しているので、根治/再実装はしておりませんが該当プロジェクトの修正の方向性をまとめます。
126
+
127
+ 0. テスト内に書いているシナリオや起動クラスはメインに移動する。
128
+
129
+ 0. @Ignoreで無視している部分は、起動時のオプションなどで走らせるシナリオのメソッドを変える等で解決する
130
+
131
+
132
+
133
+ 現在はjarに固めずIDEから直接テストを起動するやり方で運用しておりとても楽ですが、構成を見直し適したものにしたいと思います。

1

現状の進捗追記

2016/05/23 06:06

投稿

poyopi
poyopi

スコア113

test CHANGED
File without changes
test CHANGED
@@ -25,3 +25,93 @@
25
25
 
26
26
 
27
27
  動かすのに問題はないのですが、```src/main/java```を使用しないプロジェクトはおかしいということはないでしょうか。もっとこういうやり方にしたほうがよい等のご助言を賜りたく、ご意見いただけませんでしょうか。
28
+
29
+
30
+
31
+ ---
32
+
33
+
34
+
35
+ [追記] なぜJUnitを使っているか:
36
+
37
+ senarioのいくつかを一度に(順繰りに)行う等するため、リスト(chromeとFireFoxのドライバ。IEのドライバはうまく動作しなかったため、除外しました)にしているコンテキストをforEachで実行させるようにしています。大まかに以下のようなコードです。
38
+
39
+
40
+
41
+ ```java
42
+
43
+ public class Invoker {
44
+
45
+ static private List<Context> contexts = new ArrayList<>();
46
+
47
+
48
+
49
+ @BeforeClass
50
+
51
+ public static void setup() throws Exception {
52
+
53
+ セットアップ用のクラスからセットアップのメソッド実行
54
+
55
+ contextsにChromeとFireFoxのドライバをadd
56
+
57
+ }
58
+
59
+
60
+
61
+ @AfterClass
62
+
63
+ public static void quit() throws Exception {
64
+
65
+ ドライバのquit
66
+
67
+ }
68
+
69
+
70
+
71
+ @Test
72
+
73
+ public void case1() {
74
+
75
+ contexts.forEach(it -> {
76
+
77
+ new シナリオのクラス().シナリオのメソッド(it);
78
+
79
+ });
80
+
81
+ contexts.forEach(it -> {
82
+
83
+ new シナリオのクラス().シナリオのメソッド(it);
84
+
85
+ });
86
+
87
+ }
88
+
89
+
90
+
91
+ @Ignore("unexecuted")
92
+
93
+ @Test
94
+
95
+ public void case1() {
96
+
97
+ contexts.forEach(it -> {
98
+
99
+ new シナリオのクラス().シナリオのメソッド(it);
100
+
101
+ });
102
+
103
+ contexts.forEach(it -> {
104
+
105
+ new シナリオのクラス().シナリオのメソッド(it);
106
+
107
+ });
108
+
109
+ }
110
+
111
+ }
112
+
113
+
114
+
115
+ ```
116
+
117
+ きれいではないと思うのですが、実行したくないテストケースについて@Ignoreで明示的に行わないようにしています。JUnitの本来の使い方としては、```src/main/java```内のモジュールを切り出してテストするような用途だとは思っているのですが、書いているうちに混乱してきてしまっていて、ご助言を賜りたい次第です。情報不足でしたら、ご指摘ください。