bucky-core 0.9.17 → 0.9.18

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b0a8c0d77ea0eac9489222696442e84bfd16e001
4
- data.tar.gz: '08b49e470e432dd1e8020a69db42d1595eb80445'
3
+ metadata.gz: 1c9a35a6db4e92a6f47ff536e4d29b4cd7e1d7b2
4
+ data.tar.gz: 11fae9da7bab42bec0860e8fd02fc108e143ab2a
5
5
  SHA512:
6
- metadata.gz: e0c9880fa3a9c84221c54fb98f6448caf28540e040984a884b9a270204d2fa2ebd580d2e73fffc1be0fdc49586a79d4fdd1fbdd05ec643b7f888edc749b37d1b
7
- data.tar.gz: ae784ad0ce5b1d3752736427fdd2024fd40145600d01a4c465657337cfe96650afdd925b92f214d478eea6ccceafdbdfce9826825c5ecba7700fadb8dfd61239
6
+ metadata.gz: 99a3bdb82f048e72fd808db82207e74dcbaad1c03cfca5ab038b56a313af970e3b419bd0076551cfd6779a21e97b8cf8af34d6ed440fe18eb91c3faa436d324c
7
+ data.tar.gz: 43a3a5a2cfcdee8861151091d0833c90eae749938084a9e5cc11c593d62c2e3990427c696415a196ca84bf582a048cdf66bc6c0ee0ecf6278c2297f4f65f7083
data/Dockerfile CHANGED
@@ -36,3 +36,5 @@ RUN \
36
36
  rm -rf ~/.gem
37
37
 
38
38
  WORKDIR /app
39
+ RUN adduser -S bucky
40
+ USER bucky
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bucky-core (0.9.15)
4
+ bucky-core (0.9.17)
5
5
  addressable (~> 2.5)
6
6
  color_echo (~> 3.1)
7
7
  json (~> 2.1)
@@ -15,16 +15,15 @@ PATH
15
15
  GEM
16
16
  remote: https://rubygems.org/
17
17
  specs:
18
- addressable (2.6.0)
19
- public_suffix (>= 2.0.2, < 4.0)
18
+ addressable (2.7.0)
19
+ public_suffix (>= 2.0.2, < 5.0)
20
20
  ansi (1.5.0)
21
21
  ast (2.4.0)
22
22
  awesome_print (1.8.0)
23
23
  binding_of_caller (0.8.0)
24
24
  debug_inspector (>= 0.0.1)
25
25
  byebug (9.1.0)
26
- childprocess (1.0.1)
27
- rake (< 13.0)
26
+ childprocess (3.0.0)
28
27
  coderay (1.1.2)
29
28
  color_echo (3.1.1)
30
29
  debug_inspector (0.0.3)
@@ -50,7 +49,7 @@ GEM
50
49
  pry-stack_explorer (0.4.9.2)
51
50
  binding_of_caller (>= 0.7)
52
51
  pry (>= 0.9.11)
53
- public_suffix (3.1.1)
52
+ public_suffix (4.0.1)
54
53
  rainbow (3.0.0)
55
54
  rake (12.3.0)
56
55
  rspec (3.7.0)
@@ -77,10 +76,10 @@ GEM
77
76
  unicode-display_width (>= 1.4.0, < 1.6)
78
77
  ruby-mysql (2.9.14)
79
78
  ruby-progressbar (1.10.0)
80
- rubyzip (1.2.3)
81
- selenium-webdriver (3.142.3)
82
- childprocess (>= 0.5, < 2.0)
83
- rubyzip (~> 1.2, >= 1.2.2)
79
+ rubyzip (2.0.0)
80
+ selenium-webdriver (3.142.6)
81
+ childprocess (>= 0.5, < 4.0)
82
+ rubyzip (>= 1.2.2)
84
83
  sequel (4.49.0)
85
84
  simplecov (0.15.1)
86
85
  docile (~> 1.1.0)
@@ -91,7 +90,7 @@ GEM
91
90
  hirb
92
91
  simplecov
93
92
  simplecov-html (0.10.2)
94
- test-unit (3.3.3)
93
+ test-unit (3.3.4)
95
94
  power_assert
96
95
  unicode-display_width (1.5.0)
97
96
 
data/exe/bucky CHANGED
@@ -6,6 +6,7 @@ require 'optparse'
6
6
  require 'color_echo'
7
7
  require 'fileutils'
8
8
  require_relative '../lib/bucky/version'
9
+ require_relative '../lib/bucky/core/test_core/exit_handler'
9
10
 
10
11
  # Color Settings
11
12
  CE.fg(:cyan)
@@ -135,6 +136,7 @@ if ARGV == RUN_COMMAND
135
136
  test_cond.each { |k, v| test_cond[k] = v.split(',') if v.instance_of?(String) }
136
137
  require_relative '../lib/bucky/core/test_core/test_manager'
137
138
  Bucky::Core::TestCore::TestManager.new(test_cond).run
139
+ Bucky::Core::TestCore::ExitHandler.instance.bucky_exit
138
140
 
139
141
  elsif ARGV == RERUN_COMMAND
140
142
  $bucky_home_dir = Dir.pwd
@@ -146,6 +148,7 @@ elsif ARGV == RERUN_COMMAND
146
148
  test_cond.each { |k, v| test_cond[k] = v.split(',') if v.instance_of?(String) }
147
149
  require_relative '../lib/bucky/core/test_core/test_manager'
148
150
  Bucky::Core::TestCore::TestManager.new(test_cond).rerun
151
+ Bucky::Core::TestCore::ExitHandler.instance.bucky_exit
149
152
 
150
153
  elsif ARGV == LINT_COMMAND
151
154
  $bucky_home_dir = Dir.pwd
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'singleton'
4
+
5
+ module Bucky
6
+ module Core
7
+ module TestCore
8
+ class ExitHandler
9
+ include Singleton
10
+
11
+ def initialize
12
+ @exit_code = 0
13
+ end
14
+
15
+ def reset
16
+ @exit_code = 0
17
+ end
18
+
19
+ def raise
20
+ @exit_code = 1
21
+ end
22
+
23
+ def bucky_exit
24
+ exit @exit_code
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -4,6 +4,7 @@ require 'parallel'
4
4
  require_relative '../test_core/test_case_loader'
5
5
  require_relative '../../utils/config'
6
6
  require_relative './test_class_generator'
7
+ require_relative '../test_core/exit_handler'
7
8
 
8
9
  module Bucky
9
10
  module Core
@@ -26,13 +27,19 @@ module Bucky
26
27
  Signal.trap('CLD') { available_workers += 1 }
27
28
 
28
29
  data_set.each do |data|
29
- # Wait until worker is available
30
- Process.wait unless available_workers.positive?
30
+ # Wait until worker is available and handle exit code from previous process
31
+ unless available_workers.positive?
32
+ Process.wait
33
+ Bucky::Core::TestCore::ExitHandler.instance.raise unless $CHILD_STATUS.exitstatus.zero?
34
+ end
31
35
  # Workers decrease when start working
32
36
  available_workers -= 1
33
37
  fork { block.call(data) }
34
38
  end
35
- Process.waitall
39
+ # Handle all exit code in waitall
40
+ Process.waitall.each do |child|
41
+ Bucky::Core::TestCore::ExitHandler.instance.raise unless child[1].exitstatus.zero?
42
+ end
36
43
  end
37
44
 
38
45
  def parallel_distribute_into_workers(data_set, max_processes, &block)
@@ -45,7 +52,10 @@ module Bucky
45
52
  data_for_pre_worker.each { |data| block.call(data) }
46
53
  end
47
54
  end
48
- Process.waitall
55
+ # Handle all exit code in waitall
56
+ Process.waitall.each do |child|
57
+ Bucky::Core::TestCore::ExitHandler.instance.raise unless child[1].exitstatus.zero?
58
+ end
49
59
  end
50
60
  end
51
61
 
@@ -92,7 +102,6 @@ module Bucky
92
102
  e2e_parallel_num = Bucky::Utils::Config.instance[:e2e_parallel_num]
93
103
  linkstatus_parallel_num = Bucky::Utils::Config.instance[:linkstatus_parallel_num]
94
104
  tcg = Bucky::Core::TestCore::TestClassGenerator.new(@test_cond)
95
-
96
105
  case @test_cond[:test_category][0]
97
106
  when 'e2e' then parallel_new_worker_each(test_suite_data, e2e_parallel_num) { |data| tcg.generate_test_class(data) }
98
107
  when 'linkstatus' then
@@ -103,6 +112,7 @@ module Bucky
103
112
 
104
113
  def execute_test
105
114
  @re_test_count.times do |i|
115
+ Bucky::Core::TestCore::ExitHandler.instance.reset
106
116
  $round = i + 1
107
117
  test_suite_data = load_test_suites
108
118
  do_test_suites(test_suite_data)
@@ -26,7 +26,8 @@ module Bucky
26
26
  end
27
27
 
28
28
  def input(args)
29
- @pages.get_part(args).send_keys args[:word]
29
+ # when input successfully, return of click is nil.
30
+ wait_until_helper(5, 0.1, Selenium::WebDriver::Error::StaleElementReferenceError) { @pages.get_part(args).send_keys(args[:word]).nil? }
30
31
  end
31
32
 
32
33
  # Clear textbox
data/lib/bucky/version.rb CHANGED
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Bucky
4
4
  module Version
5
- VERSION = '0.9.17'
5
+ VERSION = '0.9.18'
6
6
  end
7
7
  end
@@ -7,4 +7,8 @@ cases:
7
7
  - case_name: pc_link_1
8
8
  desc: pc linkstatus test 1
9
9
  urls:
10
- - http://bucky.net
10
+ - http://bucky.net
11
+ - case_name: pc_link_2
12
+ desc: pc linkstatus test 2
13
+ urls:
14
+ - http://bucky-error.net
@@ -17,9 +17,9 @@ docker-compose -f docker-compose.system-test.yml down
17
17
  | テスト条件 | テスト観点 | テストケース<br/>No. | テストケース | テスト手順 | 期待結果 |
18
18
  |:--|:--|--:|:--|:--|:--|
19
19
  | E2Eテスト実行機能 | Operateが正常に実行できるか<br/>・シナリオコードに実装されたOperateが実行できること<br/>・clickして遷移できること ※1種類のOperateができればOK<br/>ページタイトルで遷移したことを確認する | 1 | goを実行し正常に実行されること | 1. bucky run -t e2e -d -D pc -c pc_e2e_1<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>3. assert_titleメソッド実行 | goメソッドを実行後にページ遷移されていること<br/>(assert_titleメソッドの結果がOKであることを出力される文字列で判断) |
20
- | | Verifyが正常に実行できるか<br/>・シナリオコードに実装されたVerifyが実行できること<br/>・titleの確認ができること ※1種類のVerifyが確認できればOK | 2 | assert_titleを実行し、正常に動作すること | 1. bucky run -t e2e -d -D pc -c pc_e2e_1<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>3. assert_titleメソッド実行 | assert_titleメソッド実行後にエラーが発生しないこと<br/>(終了後のステータスが0であること) |
21
- | | | 3 | assert_titleを実行し、期待値と実際値が異なる場合に正常に検証NG時の動作をすること | 1. bucky run -t e2e -d -D pc -c pc_e2e_2<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>3. assert_titleメソッド実行 | assert_titleメソッド実行後に検証NG判定されたことを表す文字列が表示されること |
22
- | | 各デバイスのUAで正常に実行できるか | 4 | デバイスPCで実行し、正常にテストが実行されること | 1. bucky run -t e2e -d -D pc -c pc_e2e_3<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. assert_textメソッド実行 | assert_textでUseragentを表す文字列をチェックした結果OKであることを出力される文字列で判断<br/><br/>Linux |
20
+ | | Verifyが正常に実行できるか<br/>・シナリオコードに実装されたVerifyが実行できること<br/>・titleの確認ができること ※1種類のVerifyが確認できればOK | 2 | assert_titleを実行し、正常に動作すること | 1. bucky run -t e2e -d -D pc -c pc_e2e_1<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>3. assert_titleメソッド実行 | assert_titleメソッド実行後にエラーが発生しないこと<br/>終了後のステータスが0であること |
21
+ | | | 3 | assert_titleを実行し、期待値と実際値が異なる場合に正常に検証NG時の動作をすること | 1. bucky run -t e2e -d -D pc -c pc_e2e_2<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>3. assert_titleメソッド実行 | assert_titleメソッド実行後に検証NG判定されたことを表す文字列が表示されること<br/>終了後のステータスが1であること |
22
+ | | 各デバイスのUAで正常に実行できるか | 4 | デバイスPCで実行し、正常にテストが実行されること | 1. bucky run -t e2e -d -D pc -c pc_e2e_3<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. assert_textメソッド実行 | assert_textでUseragentを表す文字列をチェックした結果OKであることを出力される文字列で判断<br/><br/> |
23
23
  | | | 5 | デバイスSPで実行し、正常にテストが実行されること | 1. bucky run -t e2e -d -D sp -c sp_e2e_1<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. assert_textメソッド実行 | assert_textでUseragentを表す文字列をチェックした結果OKであることを出力される文字列で判断<br/><br/>Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 |
24
24
  | | | 6 | デバイスTabletで実行し、正常にテストが実行されること | 1. bucky run -t e2e -d -D tablet -c tablet_e2e_1<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. assert_textメソッド実行 | assert_textでUseragentを表す文字列をチェックした結果OKであることを出力される文字列で判断<br/><br/>Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1 |
25
25
  | | setup/teardown_eachが正常に動作するか | 7 | setup_eachでgoを実行し正常に実行されること | 1. bucky run -t e2e -d -D pc -c setup_each_pc_e2e_1<br/>- 以下シナリオファイル内の処理 -<br/>2. setup内でgoメソッド実行 (http://bucky.net)<br/>3. testcase内でassert_titleメソッド実行 | goメソッドを実行後にページ遷移されていること<br/>(assert_titleメソッドの結果がOKであることを出力される文字列で判断) |
@@ -28,16 +28,17 @@ docker-compose -f docker-compose.system-test.yml down
28
28
  | LinkStatusテスト実行機能 | 起点URLの検証が正しく実施できるか | 10 | linkstatusを実行し、起点URLが検証されること | 1. bucky run -t linkstatus -d -D pc -c pc_link_1<br/>2. http://bucky.net に対してhttpリクエストチェック実行 | 出力に http://bucky.net が含まれること |
29
29
  | | ページ内のリンクの検証が正しく実施できるか | 11 | linkstatusを実行し、起点ページ内のリンクが検証されること | 1. bucky run -t linkstatus -d -D pc -c pc_link_1<br/>2. http://bucky.net に対してhttpリクエストチェック実行<br/>3. http://bucky.net/test_page.html に対してLinkチェック実行 | 出力に http://bucky.net/test_page.htmlが含まれること |
30
30
  | | 各デバイス(PC/SP)のUAで正常に実行できるか | 12 | デバイスPCでlinkstatusを実行し、正常に動作すること | 1. bucky run -t linkstatus -d -D pc -c pc_link_1<br/>2. http://bucky.net に対してhttpリクエストチェック実行<br/>3. http://bucky.net/test_page.html に対してLinkチェック実行 | 終了後のステータスが0であること<br/>→ 「0 failures, 0 errors」 と表示されること |
31
- | | | 13 | デバイスSPでlinkstatusを実行し、正常に動作すること | 1. bucky run -t linkstatus -d -D sp -c sp_link_1<br/>2. http://bucky.net に対してhttpリクエストチェック実行<br/>3. http://bucky.net/test_page.html チェック実行 | 終了後のステータスが0であること<br/>→ 「0 failures, 0 errors」 と表示されること |
32
- | テスト用のプロジェクト作成機能 | 下記の構造のディレクトリ、ファイルが生成されること<br/>(./template/new 以下の内容)<br/>.<br/>├── config<br/>│ ├── bucky_config.yml<br/>│ ├── e2e_config.yml<br/>│ ├── for_spec<br/>│ └── test.yml<br/>│ ├── linkstatus_config.yml<br/>│ └── test_db_config.yml<br/>├── services<br/>│ └── README.md<br/>└── system<br/>├── evidences<br/>│ ├── README.md<br/>│ └── screen_shots<br/>│ └── README.md<br/>└── logs<br/>└── README.md | 14 | newコマンド実行後に期待通りのファイル、ディレクトリが作成されていること | 1. bucky new test_project | 対象ディレクトリとファイルが存在していること |
33
- | ページオブジェクト・パーツファイル作成機能 | 指定のサービス名、デバイスのディレクトリ以下に指定のページ名で.rbファイルと.ymlファイルが生成されること | 15 | make serviceコマンド実行後に期待通りのファイルが作成されていること | 1. (事前条件) bucky new test_project<br/>2. bucky make service test_service | 対象ディレクトリとファイルが存在していること |
34
- | | | 16 | make pageコマンド実行後に期待通りのファイルが作成されていること | 1. (事前条件) bucky new test_project<br/>2. (事前条件) bucky make service test_service<br/>3. bucky make page test_page | 対象ディレクトリとファイルが存在していること |
35
- | 未定義コマンド実行時の動き | 出力されるメッセージに Invalid command error. が含まれるか<br/>終了ステータスが 0 以外になるか | 17 | 未定義コマンド実行後にエラー終了すること | 1. bucky hoge fuga | 終了後のステータスが0以外であること |
36
- | whenを使用しての実行時の動き | 出力されるメッセージに click が含まれるか<br/>例外が発生していないこと(終了後のステータスが0であること)<br/>→ 0 failures, 0 errors」 と表示されること | 18 | 条件指定をしたテスト実行で不具合なくprocが実行されること | 1. STAGE=development bucky run -d -D -pc -c pc_e2e_4<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. whenを使ったclickメソッド実行 | 例外が発生していないこと(終了後のステータスが0であること)<br/>→ 「0 failures, 0 errors」 と表示されること |
37
- | | 出力されるメッセージに click が含まれないこと(終了後のステータスが0であること) | 19 | 条件指定をしないテスト実行で該当のprocが実行されないこと | 1. bucky run -d -D -pc -c pc_e2e_4<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. whenを使ったclickメソッドは実行されない | 例外が発生していないこと(終了後のステータスが0であること)<br/>→ 「clickが表示されないこと |
38
- | | | 20 | 違う条件を指定したテスト実行で該当のprocが実行されないこと | 1. STAGE=staging bucky run -d -D -pc -c pc_e2e_4<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. whenを使ったclickメソッドは実行されない | 例外が発生していないこと(終了後のステータスが0であること)<br/>→ 「click」 が表示されないこと |
39
- | 複数パーツ取得・選択機能 | Partファイルで複数取得、番号指定でエレメントが取得できること | 21 | CSSセレクタで指定したエレメントの2つ目の要素をクリックできること | 1. bucky run -t e2e -d -D pc -c pc_e2e_5<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. assert_textメソッド実行 | 終了後のステータスが0であること<br/>→ 「0 failures, 0 errorsと表示されること |
40
- | PageObjectでのWebElement取得 | PageObjectファイルからパーツ(WebElement)が取得できること | 22 | PageObjectファイルからパーツ名でWebElementが取得できること | 1. bucky run -t e2e -d -D pc -c pc_e2e_6<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. PageObjectメソッド click_single_element | 終了後のステータスが0であること<br/>→ 「0 failures, 0 errors」 と表示されること |
41
- | | | 23 | PageObjectファイルからパーツ名[数字]でWebElementが取得できること | 1. bucky run -t e2e -d -D pc -c pc_e2e_7<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. PageObjectメソッド click_multiple_element | 終了後のステータスが0であること<br/>→ 「0 failures, 0 errors」 と表示されること |
42
- | VerificationでのWebElement取得 | Verificationファイルからパーツ(WebElement)が取得できること | 24 | Verificationファイルからパーツ名でWebElementが取得できること | 1. bucky run -t e2e -d -D pc -c pc_e2e_8<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. Verificationメソッド click_single_element | 終了後のステータスが0であること<br/>→ 「0 failures, 0 errors」 と表示されること |
43
- | | | 25 | Verificationファイルからパーツ名[数字]でWebElementが取得できること | 1. bucky run -t e2e -d -D pc -c pc_e2e_9<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. Verificationメソッド click_multiple_element | 終了後のステータスが0であること<br/>→ 「0 failures, 0 errors」 と表示されること |
31
+ | | | 13 | linkstatusNGテストを実行し、正常に動作すること | 1. bucky run -t linkstatus -d -D pc -c pc_link_2<br/>2. http://bucky-error.net に対してhttpリクエストチェック実行 | 終了後のステータスが1であること |
32
+ | | | 14 | デバイスSPでlinkstatusを実行し、正常に動作すること | 1. bucky run -t linkstatus -d -D sp -c sp_link_1<br/>2. http://bucky.net に対してhttpリクエストチェック実行<br/>3. http://bucky.net/test_page.html チェック実行 | 終了後のステータスが0であること<br/>→ 「0 failures, 0 errors」 と表示されること |
33
+ | テスト用のプロジェクト作成機能 | 下記の構造のディレクトリ、ファイルが生成されること<br/>(./template/new 以下の内容)<br/>.<br/>├── config<br/>│ ├── bucky_config.yml<br/>│ ├── e2e_config.yml<br/>│ ├── for_spec<br/>│ └── test.yml<br/>│ ├── linkstatus_config.yml<br/>│ └── test_db_config.yml<br/>├── services<br/>│ └── README.md<br/>└── system<br/>├── evidences<br/>│ ├── README.md<br/>│ └── screen_shots<br/>│ └── README.md<br/>└── logs<br/>└── README.md | 15 | newコマンド実行後に期待通りのファイル、ディレクトリが作成されていること | 1. bucky new test_project | 対象ディレクトリとファイルが存在していること |
34
+ | ページオブジェクト・パーツファイル作成機能 | 指定のサービス名、デバイスのディレクトリ以下に指定のページ名で.rbファイルと.ymlファイルが生成されること | 16 | make serviceコマンド実行後に期待通りのファイルが作成されていること | 1. (事前条件) bucky new test_project<br/>2. bucky make service test_service | 対象ディレクトリとファイルが存在していること |
35
+ | | | 17 | make pageコマンド実行後に期待通りのファイルが作成されていること | 1. (事前条件) bucky new test_project<br/>2. (事前条件) bucky make service test_service<br/>3. bucky make page test_page | 対象ディレクトリとファイルが存在していること |
36
+ | 未定義コマンド実行時の動き | 出力されるメッセージに Invalid command error. が含まれるか<br/>終了ステータスが 0 以外になるか | 18 | 未定義コマンド実行後にエラー終了すること | 1. bucky hoge fuga | 終了後のステータスが0以外であること |
37
+ | whenを使用しての実行時の動き | 出力されるメッセージに click が含まれるか<br/>例外が発生していないこと(終了後のステータスが0であること)<br/>→ 「0 failures, 0 errors」 と表示されること | 19 | 条件指定をしたテスト実行で不具合なくprocが実行されること | 1. STAGE=development bucky run -d -D -pc -c pc_e2e_4<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. whenを使ったclickメソッド実行 | 例外が発生していないこと(終了後のステータスが0であること)<br/>→ 「0 failures, 0 errorsと表示されること |
38
+ | | 出力されるメッセージに click が含まれないこと(終了後のステータスが0であること) | 20 | 条件指定をしないテスト実行で該当のprocが実行されないこと | 1. bucky run -d -D -pc -c pc_e2e_4<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. whenを使ったclickメソッドは実行されない | 例外が発生していないこと(終了後のステータスが0であること)<br/>→ 「click」 が表示されないこと |
39
+ | | | 21 | 違う条件を指定したテスト実行で該当のprocが実行されないこと | 1. STAGE=staging bucky run -d -D -pc -c pc_e2e_4<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. whenを使ったclickメソッドは実行されない | 例外が発生していないこと(終了後のステータスが0であること)<br/>→ 「clickが表示されないこと |
40
+ | 複数パーツ取得・選択機能 | Partファイルで複数取得、番号指定でエレメントが取得できること | 22 | CSSセレクタで指定したエレメントの2つ目の要素をクリックできること | 1. bucky run -t e2e -d -D pc -c pc_e2e_5<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. assert_textメソッド実行 | 終了後のステータスが0であること<br/>→ 「0 failures, 0 errors」 と表示されること |
41
+ | PageObjectでのWebElement取得 | PageObjectファイルからパーツ(WebElement)が取得できること | 23 | PageObjectファイルからパーツ名でWebElementが取得できること | 1. bucky run -t e2e -d -D pc -c pc_e2e_6<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. PageObjectメソッド click_single_element | 終了後のステータスが0であること<br/>→ 「0 failures, 0 errors」 と表示されること |
42
+ | | | 24 | PageObjectファイルからパーツ名[数字]でWebElementが取得できること | 1. bucky run -t e2e -d -D pc -c pc_e2e_7<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. PageObjectメソッド click_multiple_element | 終了後のステータスが0であること<br/>→ 「0 failures, 0 errors」 と表示されること |
43
+ | VerificationでのWebElement取得 | Verificationファイルからパーツ(WebElement)が取得できること | 25 | Verificationファイルからパーツ名でWebElementが取得できること | 1. bucky run -t e2e -d -D pc -c pc_e2e_8<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. Verificationメソッド click_single_element | 終了後のステータスが0であること<br/>→ 「0 failures, 0 errors」 と表示されること |
44
+ | | | 26 | Verificationファイルからパーツ名[数字]でWebElementが取得できること | 1. bucky run -t e2e -d -D pc -c pc_e2e_9<br/>- 以下シナリオファイル内の処理 -<br/>2. goメソッド実行 (http://bucky.net)<br/>2. Verificationメソッド click_multiple_element | 終了後のステータスが0であること<br/>→ 「0 failures, 0 errors」 と表示されること |
@@ -13,19 +13,19 @@ teardown() {
13
13
  rm -rf /tmp/$BUCKY_PROJECT_NAME
14
14
  }
15
15
 
16
- @test "#14 After executing 'new' command, expected files and directories are created" {
16
+ @test "#15 After executing 'new' command, expected files and directories are created" {
17
17
  run diff /bucky-core/template/new/ /tmp/$BUCKY_PROJECT_NAME
18
18
  [ $status -eq 0 ]
19
19
  }
20
20
 
21
- @test "#15 After executing 'make service' command, expected directory is created" {
21
+ @test "#16 After executing 'make service' command, expected directory is created" {
22
22
  cd /tmp/$BUCKY_PROJECT_NAME
23
23
  bucky make service $TEST_SERVICE
24
24
  run ls /tmp/$BUCKY_PROJECT_NAME/services/$TEST_SERVICE
25
25
  [ $status -eq 0 ]
26
26
  }
27
27
 
28
- @test "#16 After executing 'make page' command, expected page and parts file are created" {
28
+ @test "#17 After executing 'make page' command, expected page and parts file are created" {
29
29
  cd /tmp/$BUCKY_PROJECT_NAME
30
30
  bucky make service $TEST_SERVICE
31
31
  bucky make page test_page --service $TEST_SERVICE --device pc
@@ -35,7 +35,7 @@ teardown() {
35
35
  [ $status -eq 0 ]
36
36
  }
37
37
 
38
- @test "#17 After executing undefined command, show error message and exit" {
38
+ @test "#18 After executing undefined command, show error message and exit" {
39
39
  cd /tmp/$BUCKY_PROJECT_NAME
40
40
  run bucky hoge fuga
41
41
  [ $(expr "$output" : ".*Invalid command error.*") -ne 0 ]
@@ -9,14 +9,16 @@ setup() {
9
9
  [ $(expr "$output" : ".*0 failures, 0 errors,.*") -ne 0 ]
10
10
  }
11
11
 
12
- @test "#02 After executing e2e verify assert_title, results contain verify words and no failures/errors" {
12
+ @test "#02 After executing e2e verify assert_title, results contain verify words, no failures/errors and exit code is 0" {
13
13
  run bucky run -t e2e -d -D pc -c pc_e2e_1
14
+ [ $status -eq 0 ]
14
15
  [ $(expr "$output" : ".*:verify.*assert_title.*") -ne 0 ]
15
16
  [ $(expr "$output" : ".*0 failures, 0 errors,.*") -ne 0 ]
16
17
  }
17
18
 
18
- @test "#03 After executing e2e verify assert_title, results contain verify words and 1 failure" {
19
+ @test "#03 After executing e2e verify assert_title, results contain verify words and 1 failure and exit code is 1" {
19
20
  run bucky run -t e2e -d -D pc -c pc_e2e_2
21
+ [ $status -eq 1 ]
20
22
  [ $(expr "$output" : ".*:verify.*assert_title.*") -ne 0 ]
21
23
  [ $(expr "$output" : ".*1 failures.*") -ne 0 ]
22
24
  }
@@ -54,47 +56,47 @@ setup() {
54
56
  [ $(expr "$output" : ".*0 failures, 0 errors,.*") -ne 0 ]
55
57
  }
56
58
 
57
- @test "#18 When 'when condition' is added, results have no failures nor errors" {
59
+ @test "#19 When 'when condition' is added, results have no failures nor errors" {
58
60
  export STAGE=development
59
61
  run bucky run -t e2e -d -D pc -c pc_e2e_4
60
62
  [ $(expr "$output" : ".*click.*") -ne 0 ]
61
63
  [ $(expr "$output" : ".*0 failures, 0 errors,.*") -ne 0 ]
62
64
  }
63
65
 
64
- @test "#19 When 'when condition' is not added, results have no click procedure" {
66
+ @test "#20 When 'when condition' is not added, results have no click procedure" {
65
67
  run bucky run -t e2e -d -D pc -c pc_e2e_4
66
68
  [ $(expr "$output" : ".*click.*") -eq 0 ]
67
69
  [ $(expr "$output" : ".*0 failures, 0 errors,.*") -ne 0 ]
68
70
  }
69
71
 
70
- @test "#20 When 'different when condition' is added, results have no click procedure" {
72
+ @test "#21 When 'different when condition' is added, results have no click procedure" {
71
73
  export STAGE=staging
72
74
  run bucky run -t e2e -d -D pc -c pc_e2e_4
73
75
  [ $(expr "$output" : ".*click.*") -eq 0 ]
74
76
  [ $(expr "$output" : ".*0 failures, 0 errors,.*") -ne 0 ]
75
77
  }
76
78
 
77
- @test "#21 When click second element from scenario, results have no failures nor errors" {
79
+ @test "#22 When click second element from scenario, results have no failures nor errors" {
78
80
  run bucky run -t e2e -d -D pc -c pc_e2e_5
79
81
  [ $(expr "$output" : ".*0 failures, 0 errors,.*") -ne 0 ]
80
82
  }
81
83
 
82
- @test "#22 When click element from PageObject file, results have no failures nor errors" {
84
+ @test "#23 When click element from PageObject file, results have no failures nor errors" {
83
85
  run bucky run -t e2e -d -D pc -c pc_e2e_6
84
86
  [ $(expr "$output" : ".*0 failures, 0 errors,.*") -ne 0 ]
85
87
  }
86
88
 
87
- @test "#23 When click second element from PageObject file, results have no failures nor errors" {
89
+ @test "#24 When click second element from PageObject file, results have no failures nor errors" {
88
90
  run bucky run -t e2e -d -D pc -c pc_e2e_7
89
91
  [ $(expr "$output" : ".*0 failures, 0 errors,.*") -ne 0 ]
90
92
  }
91
93
 
92
- @test "#24 When click element from Verification file, results have no failures nor errors" {
94
+ @test "#25 When click element from Verification file, results have no failures nor errors" {
93
95
  run bucky run -t e2e -d -D pc -c pc_e2e_8
94
96
  [ $(expr "$output" : ".*0 failures, 0 errors,.*") -ne 0 ]
95
97
  }
96
98
 
97
- @test "#25 When click second element from Verification file, results have no failures nor errors" {
99
+ @test "#26 When click second element from Verification file, results have no failures nor errors" {
98
100
  run bucky run -t e2e -d -D pc -c pc_e2e_9
99
101
  [ $(expr "$output" : ".*0 failures, 0 errors,.*") -ne 0 ]
100
102
  }
@@ -4,21 +4,25 @@ setup() {
4
4
  cd /bucky-core/system_testing/test_bucky_project
5
5
  }
6
6
 
7
- teardown() {
8
- # No failures and errors
9
- [ $(expr "$output" : ".*0 failures, 0 errors,.*") -ne 0 ]
10
- }
11
-
12
- @test "#10,#12 After executing linkstatus on pc , results contain target base url and no failures/errors." {
7
+ @test "#10,#12 After executing linkstatus on pc , results contain target base url, no failures/errors and exit code is 0." {
13
8
  run bucky run -t linkstatus -d -D pc -c pc_link_1
9
+ [ $status -eq 0 ]
14
10
  [ $(expr "$output" : ".*http://bucky\.net.*") -ne 0 ]
11
+ [ $(expr "$output" : ".*0 failures, 0 errors,.*") -ne 0 ]
15
12
  }
16
13
 
17
14
  @test "#11 After executing linkstatus on pc , results contain target link url and no failures/errors." {
18
15
  run bucky run -t linkstatus -d -D pc -c pc_link_1
19
16
  [ $(expr "$output" : ".*http://bucky\.net/test_page.html.*") -ne 0 ]
17
+ [ $(expr "$output" : ".*0 failures, 0 errors,.*") -ne 0 ]
18
+ }
19
+
20
+ @test "#13 After executing linkstatus failed test, exit code is 1" {
21
+ run bucky run -t linkstatus -d -D pc -c pc_link_2
22
+ [ $status -eq 1 ]
20
23
  }
21
24
 
22
- @test "#13 After executing linkstatus on sp , results have no failures nor errors" {
25
+ @test "#14 After executing linkstatus on sp , results have no failures nor errors" {
23
26
  run bucky run -t linkstatus -d -D sp -c sp_link_1
27
+ [ $(expr "$output" : ".*0 failures, 0 errors,.*") -ne 0 ]
24
28
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bucky-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.17
4
+ version: 0.9.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - NaotoKishino
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: exe
15
15
  cert_chain: []
16
- date: 2019-09-05 00:00:00.000000000 Z
16
+ date: 2019-10-15 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: awesome_print
@@ -360,7 +360,7 @@ files:
360
360
  - example/hands-on/services/bucky_hands_on/pc/pageobject/github_top.rb
361
361
  - example/hands-on/services/bucky_hands_on/pc/parts/github_search_list.yml
362
362
  - example/hands-on/services/bucky_hands_on/pc/parts/github_top.yml
363
- - example/hands-on/services/bucky_hands_on/pc/scenarios/e2e/search_and_asseret.yml
363
+ - example/hands-on/services/bucky_hands_on/pc/scenarios/e2e/search_and_assert.yml
364
364
  - example/hands-on/services/bucky_hands_on/pc/scenarios/linkstatus/github_top.yml
365
365
  - example/hands-on/system/evidences/README.md
366
366
  - example/hands-on/system/evidences/screen_shots/README.md
@@ -371,6 +371,7 @@ files:
371
371
  - lib/bucky/core/database/test_data_operator.rb
372
372
  - lib/bucky/core/exception/bucky_exception.rb
373
373
  - lib/bucky/core/report/screen_shot_generator.rb
374
+ - lib/bucky/core/test_core/exit_handler.rb
374
375
  - lib/bucky/core/test_core/test_case_loader.rb
375
376
  - lib/bucky/core/test_core/test_class_generator.rb
376
377
  - lib/bucky/core/test_core/test_manager.rb