rabbit-slide-kou-rubykaigi-2015 2015.12.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.rabbit +1 -0
- data/README.rd +48 -0
- data/Rakefile +17 -0
- data/config.yaml +23 -0
- data/images/clear-code-is-a-silver-sponsor.png +0 -0
- data/pdf/rubykaigi-2015-the-history-of-testing-framework-in-ruby.pdf +0 -0
- data/the-history-of-testing-framework-in-ruby.rab +496 -0
- data/theme.rb +3 -0
- metadata +85 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 356df97952dd608c83d5a999159f4f656c4e9da7
|
4
|
+
data.tar.gz: c3135eb80cf0c8b00b41a2bb2a833a0cbf6c5cc1
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 64d47530e48352df4b183023475ce5c5a49ba7f49abd4762637a183fa508733863dfa3493396ee94bdcce76f9fef9c52ab5f6abedd7d8a9264e2e364ef1038fd
|
7
|
+
data.tar.gz: 119887b10f2c0b6e15feea8cc81ec656a1cc4662d8eec754924152cdd4032b9baab2a7059fd95a27c0012354faed653cf5d7d5e588b0e752ad279189ae4f2169
|
data/.rabbit
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
the-history-of-testing-framework-in-ruby.rab
|
data/README.rd
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
= The history of testing framework in Ruby
|
2
|
+
|
3
|
+
This talk describes about the history of testing framework in Ruby.
|
4
|
+
|
5
|
+
Ruby 2.2 bundles two testing frameworks. They are minitest and test-unit. Do you know why two testing frameworks are bundled? Do you know that test-unit was bundled and then removed from Ruby distribution? If you can't answer these questions and you're interested in testing framework, this talk will help you.
|
6
|
+
|
7
|
+
This talk describes about the history of bundled testing framework in Ruby and some major testing frameworks for Ruby in chronological order.
|
8
|
+
|
9
|
+
== License
|
10
|
+
|
11
|
+
=== Slide
|
12
|
+
|
13
|
+
CC BY-SA 4.0
|
14
|
+
|
15
|
+
Use the followings for notation of the author:
|
16
|
+
|
17
|
+
* Kouhei Sutou
|
18
|
+
|
19
|
+
=== Images
|
20
|
+
|
21
|
+
==== ClearCode Inc. logo
|
22
|
+
|
23
|
+
CC BY-SA 4.0
|
24
|
+
|
25
|
+
Author: ClearCode Inc.
|
26
|
+
|
27
|
+
It is used in page header and some pages in the slide.
|
28
|
+
|
29
|
+
== For author
|
30
|
+
|
31
|
+
=== Show
|
32
|
+
|
33
|
+
rake
|
34
|
+
|
35
|
+
=== Publish
|
36
|
+
|
37
|
+
rake publish
|
38
|
+
|
39
|
+
== For viewers
|
40
|
+
|
41
|
+
=== Install
|
42
|
+
|
43
|
+
gem install rabbit-slide-kou-rubykaigi-2015
|
44
|
+
|
45
|
+
=== Show
|
46
|
+
|
47
|
+
rabbit rabbit-slide-kou-rubykaigi-2015.gem
|
48
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require "rabbit/task/slide"
|
2
|
+
|
3
|
+
# Edit ./config.yaml to customize meta data
|
4
|
+
|
5
|
+
spec = nil
|
6
|
+
Rabbit::Task::Slide.new do |task|
|
7
|
+
spec = task.spec
|
8
|
+
spec.files += Dir.glob("images/*.*")
|
9
|
+
# spec.files -= Dir.glob("private/**/*.*")
|
10
|
+
spec.add_runtime_dependency("rabbit-theme-clear-code", ">= 1.0.5")
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "Tag #{spec.version}"
|
14
|
+
task :tag do
|
15
|
+
sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
|
16
|
+
sh("git", "push", "--tags")
|
17
|
+
end
|
data/config.yaml
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
---
|
2
|
+
id: rubykaigi-2015
|
3
|
+
base_name: the-history-of-testing-framework-in-ruby
|
4
|
+
tags:
|
5
|
+
- rabbit
|
6
|
+
- ruby
|
7
|
+
- testing-framework
|
8
|
+
presentation_date: 2015-12-12
|
9
|
+
version: 2015.12.12.0
|
10
|
+
licenses:
|
11
|
+
- CC BY-SA 4.0
|
12
|
+
slideshare_id:
|
13
|
+
speaker_deck_id:
|
14
|
+
ustream_id:
|
15
|
+
vimeo_id:
|
16
|
+
youtube_id:
|
17
|
+
author:
|
18
|
+
markup_language: :rd
|
19
|
+
name: Kouhei Sutou
|
20
|
+
email: kou@clear-code.com
|
21
|
+
rubygems_user: kou
|
22
|
+
slideshare_user: kou
|
23
|
+
speaker_deck_user: kou
|
Binary file
|
Binary file
|
@@ -0,0 +1,496 @@
|
|
1
|
+
= The history of\n testing framework\n in Ruby
|
2
|
+
|
3
|
+
: author
|
4
|
+
Kouhei Sutou
|
5
|
+
: institution
|
6
|
+
ClearCode Inc.
|
7
|
+
: content-source
|
8
|
+
RubyKaigi 2015
|
9
|
+
: date
|
10
|
+
2015-12-12
|
11
|
+
: allotted-time
|
12
|
+
35m
|
13
|
+
: theme
|
14
|
+
.
|
15
|
+
|
16
|
+
= Silver sponsor
|
17
|
+
|
18
|
+
# image
|
19
|
+
# src = images/clear-code-is-a-silver-sponsor.png
|
20
|
+
# relative_height = 100
|
21
|
+
|
22
|
+
== slide property
|
23
|
+
|
24
|
+
: enable-title-on-image
|
25
|
+
false
|
26
|
+
|
27
|
+
= Goal\n(('note:目標'))
|
28
|
+
|
29
|
+
(('tag:center'))
|
30
|
+
(('tag:large'))
|
31
|
+
You know about\n
|
32
|
+
(({/\Atest.+unit\z/i}))
|
33
|
+
|
34
|
+
(('tag:center'))
|
35
|
+
(('note:(({/\\Atest.+unit\\z/i}))を知ること'))
|
36
|
+
|
37
|
+
= Test\n(('note:テスト'))
|
38
|
+
|
39
|
+
(('tag:center'))
|
40
|
+
Which Rubies do include\n
|
41
|
+
(({/\Atest.+unit\z/i}))?\n
|
42
|
+
(('note:(({/\Atest.+unit\z/i}))を含んでいるRubyはどれでしょう?'))
|
43
|
+
|
44
|
+
# RT
|
45
|
+
delimiter = [|]
|
46
|
+
|
47
|
+
(('1.4')) | (('1.6')) | (('1.8'))
|
48
|
+
(('1.9.1')) | (('1.9.2')) | (('1.9.3'))
|
49
|
+
(('2.0')) | (('2.1')) | (('2.2'))
|
50
|
+
(('2.3')) | |
|
51
|
+
|
52
|
+
= Answer\n(('note:答え'))
|
53
|
+
|
54
|
+
(('tag:center'))
|
55
|
+
Which Rubies do include\n
|
56
|
+
(({/\Atest.+unit\z/i}))?\n
|
57
|
+
(('note:(({/\Atest.+unit\z/i}))を含んでいるRubyはどれでしょう?'))
|
58
|
+
|
59
|
+
# RT
|
60
|
+
delimiter = [|]
|
61
|
+
|
62
|
+
(('1.4')) | (('1.6')) | ((*1.8*))
|
63
|
+
((*1.9.1*)) | ((*1.9.2*)) | ((*1.9.3*))
|
64
|
+
((*2.0*)) | ((*2.1*)) | ((*2.2*))
|
65
|
+
((*2.3*)) | |
|
66
|
+
|
67
|
+
= History\n(('note:歴史'))
|
68
|
+
|
69
|
+
= Characters\n(('note:登場人物'))
|
70
|
+
|
71
|
+
# RT
|
72
|
+
|
73
|
+
testsupp, RubyUnit
|
74
|
+
Lapidary,
|
75
|
+
Test::Unit, test/unit
|
76
|
+
test-unit, miniunit
|
77
|
+
minitest, RSpec
|
78
|
+
|
79
|
+
= Ruby 1.3 times\n(('note:Ruby 1.3の時代'))
|
80
|
+
|
81
|
+
* 1998-1999
|
82
|
+
* The first testing framework for Ruby was released\n
|
83
|
+
(('note:最初のRuby用のテスティングフレームワークがリリース'))
|
84
|
+
* testsupp
|
85
|
+
|
86
|
+
= testsupp
|
87
|
+
|
88
|
+
* 1999-4-11: [ruby-talk:00634]\n
|
89
|
+
ANN: testsupp.rb 0.1
|
90
|
+
* Perl's (({Test})) like API\n
|
91
|
+
(('note:PerlのTestモジュールのようなAPI'))
|
92
|
+
* Perl's (({Test})) exists since 1998\n
|
93
|
+
(('note:PerlのTestモジュールは1998からある'))
|
94
|
+
|
95
|
+
= testsupp: API
|
96
|
+
|
97
|
+
# coderay ruby
|
98
|
+
require "testsupp"
|
99
|
+
include TestSupp
|
100
|
+
|
101
|
+
start_tests
|
102
|
+
ok "Hello" == "Hello"
|
103
|
+
end_tests
|
104
|
+
|
105
|
+
= Ruby 1.4 times\n(('note:Ruby 1.4の時代'))
|
106
|
+
|
107
|
+
* 1999-2000
|
108
|
+
* The first xUnit testing framework for Ruby was released\n
|
109
|
+
(('note:最初のRuby用のxUnit系テスティングフレームワークが'))\n
|
110
|
+
(('note:リリース'))
|
111
|
+
* RubyUnit
|
112
|
+
|
113
|
+
= RubyUnit
|
114
|
+
|
115
|
+
* Since 1999-11-20 at least\n
|
116
|
+
(('note:少なくとも1999年11月20日には存在していた'))
|
117
|
+
* [ruby-list:18594]\n
|
118
|
+
(('note:"RubyUnit のページは当分更新されないと思うです."'))
|
119
|
+
* The first xUnit testing framework for Ruby\n
|
120
|
+
(('note:最初のRuby用のxUnit系テスティングフレームワーク'))
|
121
|
+
|
122
|
+
= RubyUnit: API
|
123
|
+
|
124
|
+
# coderay ruby
|
125
|
+
require "runit/testcase"
|
126
|
+
class Test < RUNIT::TestCase
|
127
|
+
def test_add
|
128
|
+
assert_equal(3, 1 + 2)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
= RubyUnit: Impression\n(('note:感想'))
|
133
|
+
|
134
|
+
Ruby-ish\n
|
135
|
+
(('note:Rubyっぽい'))
|
136
|
+
|
137
|
+
= RubyUnit: FYI\n(('note:参考情報'))
|
138
|
+
|
139
|
+
* Test generator exists\n
|
140
|
+
(('note:テストジェネレーターがある'))
|
141
|
+
* Test exec command exists\n
|
142
|
+
(('note:テスト実行コマンドがある'))
|
143
|
+
* (('wait'))
|
144
|
+
(('note:rubyunit gem exists since 2014-10-12'))\n
|
145
|
+
(('note:rubyunitというgemが存在する'))
|
146
|
+
* (('note:Not related product'))\n
|
147
|
+
(('note:関係のないプロダクト'))
|
148
|
+
|
149
|
+
= Ruby 1.6 times: 1\n(('note:Ruby 1.6の時代:1'))
|
150
|
+
|
151
|
+
* 2000-2002
|
152
|
+
* The second xUnit testing framework for Ruby was released\n
|
153
|
+
(('note:2つ目のRuby用のxUnit系テスティングフレームワークが'))\n
|
154
|
+
(('note:リリース'))
|
155
|
+
* Lapidary
|
156
|
+
|
157
|
+
= Lapidary
|
158
|
+
|
159
|
+
* The first release was 2001-03-20\n
|
160
|
+
(('note:最初のリリースは2001年3月20日'))
|
161
|
+
* The second xUnit testing framework for Ruby\n
|
162
|
+
(('note:2つ目のRuby用のxUnit系テスティングフレームワーク'))
|
163
|
+
* Maybe\n
|
164
|
+
(('note:たぶん'))
|
165
|
+
|
166
|
+
= Lapidary: API
|
167
|
+
|
168
|
+
# coderay ruby
|
169
|
+
require "Lapidary/TestCase"
|
170
|
+
class TC_Adder < Lapidary::TestCase
|
171
|
+
def testAdd
|
172
|
+
assertEqual(3, 1 + 2)
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
= Lapidary: Impression\n(('note:感想'))
|
177
|
+
|
178
|
+
Not Ruby-ish\n
|
179
|
+
(('note:Rubyっぽくない'))
|
180
|
+
|
181
|
+
= Lapidary: FYI\n(('note:参考情報'))
|
182
|
+
|
183
|
+
* Has GUI test runner\n
|
184
|
+
(('note:GUIのテスト実行機能アリ'))
|
185
|
+
|
186
|
+
= Ruby 1.6 times: 2\n(('note:Ruby 1.6の時代:2'))
|
187
|
+
|
188
|
+
* Start trying to bundle a testing framework to Ruby\n
|
189
|
+
(('note:テスティングフレームワークをRubyにバンドルする'))\n
|
190
|
+
(('note:試みを開始'))
|
191
|
+
* RubyUnit + Lapidary = Test::Unit
|
192
|
+
|
193
|
+
= Test::Unit
|
194
|
+
|
195
|
+
* Since 2002-02:\n
|
196
|
+
[ruby-talk:34744]
|
197
|
+
* The first (({\A/test.+unit\z/}))\n
|
198
|
+
(('note:最初の(({/\\Atest.+unit\\z/i}))'))
|
199
|
+
* The author is the author of Lapidary\n
|
200
|
+
(('note:Lapidaryの作者が作者'))
|
201
|
+
|
202
|
+
= Test::Unit: API
|
203
|
+
|
204
|
+
# coderay ruby
|
205
|
+
require "test/unit"
|
206
|
+
class TC_Adder < Test::Unit::TestCase
|
207
|
+
def test_add
|
208
|
+
assert_equal(3, 1 + 2)
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
212
|
+
= Test::Unit: Impression\n(('note:感想'))
|
213
|
+
|
214
|
+
Ruby-ish\n
|
215
|
+
(('note:Rubyっぽい'))
|
216
|
+
|
217
|
+
= Test::Unit: FYI 1\n(('note:参考情報1'))
|
218
|
+
|
219
|
+
* API is based on RubyUnit\n
|
220
|
+
(('note:APIはRubyUnitのよう'))
|
221
|
+
* Has RubyUnit compatible API\n
|
222
|
+
(('note:RubyUnit互換APIアリ'))
|
223
|
+
* Impl. is based on Lapidary\n
|
224
|
+
(('note:実装はLapidaryベース'))
|
225
|
+
* Has GUI test runner\n
|
226
|
+
(('note:GUIのテスト実行機能アリ'))
|
227
|
+
|
228
|
+
= Wrap up: Before Ruby 1.8\n(('note:Ruby 1.8の前までのまとめ'))
|
229
|
+
|
230
|
+
* testsupp: Perl like API
|
231
|
+
* RubyUnit: Rubyish xUnit
|
232
|
+
* Lapidary: Not Rubyish xUnit
|
233
|
+
* Test::Unit:
|
234
|
+
* RubyUnit API + Lapidary Impl.
|
235
|
+
|
236
|
+
= Ruby 1.8 times: 1\n(('note:Ruby 1.8の時代:1'))
|
237
|
+
|
238
|
+
* 2003-2013
|
239
|
+
* Ruby bundles a testing framework\n
|
240
|
+
(('note:Rubyがテスティングフレームワークをバンドルした'))
|
241
|
+
* Test::Unit aka test/unit\n
|
242
|
+
(('note:バンドルされたのはTest::Unit'))\n
|
243
|
+
(('note:test/unitとも呼ばれる'))
|
244
|
+
|
245
|
+
= FYI: Why test/unit?\n(('note:参考情報:なぜtest/unitと呼ぶか'))
|
246
|
+
|
247
|
+
# coderay ruby
|
248
|
+
require "test/unit"
|
249
|
+
|
250
|
+
= Test::Unit in Ruby 1.8\n(('note:Ruby 1.8バンドル後のTest::Unit'))
|
251
|
+
|
252
|
+
* No active development\n
|
253
|
+
(('note:開発は停滞'))
|
254
|
+
* Maintainer is changed\n
|
255
|
+
(('note:メンテナー交代'))
|
256
|
+
* The author of minitest\n
|
257
|
+
(('note:後のminitestの作者'))
|
258
|
+
|
259
|
+
= Test::Unit:\nnew maintainer\n(('note:新しいメンテナー'))
|
260
|
+
|
261
|
+
* New maintainer said:\n
|
262
|
+
(('note:新メンテナー曰く'))
|
263
|
+
* Can't maintain Test::Unit because it's too complex\n
|
264
|
+
(('note:Test::Unitは複雑すぎてメンテナンスできない'))
|
265
|
+
|
266
|
+
= Ruby 1.8 times: 2\n(('note:Ruby 1.8の時代:2'))
|
267
|
+
|
268
|
+
RSpec was born\n
|
269
|
+
(('note:RSpec誕生'))
|
270
|
+
|
271
|
+
= RSpec
|
272
|
+
|
273
|
+
* Since 2005-08
|
274
|
+
* Tool for Behavior Driven Development\n
|
275
|
+
(('note:振る舞い駆動開発用のツール'))
|
276
|
+
* Active development\n
|
277
|
+
(('note:開発は活発'))
|
278
|
+
|
279
|
+
= RSpec 0.1.0: API
|
280
|
+
|
281
|
+
# coderay ruby
|
282
|
+
# 2005-08
|
283
|
+
require "spec"
|
284
|
+
class SpecAdd < Spec::Context
|
285
|
+
def add
|
286
|
+
(1 + 2).should_equal 3
|
287
|
+
end
|
288
|
+
end
|
289
|
+
|
290
|
+
= RSpec: 1.0.0: API
|
291
|
+
|
292
|
+
# coderay ruby
|
293
|
+
# 2007-05
|
294
|
+
require "spec"
|
295
|
+
describe "Add" do
|
296
|
+
it "should support positive + positive" do
|
297
|
+
(1 + 2).should == 3
|
298
|
+
end
|
299
|
+
end
|
300
|
+
|
301
|
+
= RSpec 1.0.0: Impression\n(('note:感想'))
|
302
|
+
|
303
|
+
Engl-ish\n
|
304
|
+
(('note:英語っぽい'))
|
305
|
+
|
306
|
+
= RSpec: FYI\n(('note:参考情報'))
|
307
|
+
|
308
|
+
* Test exec command exists\n
|
309
|
+
(('note:テスト実行コマンドがある'))
|
310
|
+
* RubyUnit like\n
|
311
|
+
(('note:RubyUnitみたい'))
|
312
|
+
* More features (('note:than Test::Unit'))\n
|
313
|
+
(('note:Test::Unitより機能が多い'))
|
314
|
+
* Mock, Not implemented, ...\n
|
315
|
+
(('note:モックや未実装など'))
|
316
|
+
|
317
|
+
= Wrap up: Ruby 1.8 times\n(('note:Ruby 1.8時代のまとめ'))
|
318
|
+
|
319
|
+
* Ruby starts bundling Test::Unit (('note:((({/\\Atest.+unit\\z/i})))'))\n
|
320
|
+
(('note:RubyがTest::Unitのバンドルを始めた'))
|
321
|
+
* But Test::Unit was died...\n
|
322
|
+
(('note:バンドル後、Test::Unitは死んだ。。。'))
|
323
|
+
* RSpec was born and active\n
|
324
|
+
(('note:RSpecが生まれ、活発だった'))
|
325
|
+
|
326
|
+
= Ruby 1.9 times\n(('note:Ruby 1.9の時代'))
|
327
|
+
|
328
|
+
* 2009-2014
|
329
|
+
* Ruby drops Test::Unit\n
|
330
|
+
(('note:RubyがTest::Unitを捨てた'))
|
331
|
+
* Because Test::Unit is too complex for new maintainer\n
|
332
|
+
(('note:新メンテナーにはTest::Unitは複雑すぎるから'))
|
333
|
+
|
334
|
+
= Test::Unit → test-unit
|
335
|
+
|
336
|
+
* Released as test-unit gem\n
|
337
|
+
(('note:test-unit gemとしてリリース'))
|
338
|
+
* Still (({/\Atest.+unit\z/i}))\n
|
339
|
+
(('note:名前変更後も(({/\Atest.+unit\z/i}))'))
|
340
|
+
* (('note:test-unit 1.2.3 == Test::Unit in Ruby 1.8'))
|
341
|
+
* Maintainer is changed\n
|
342
|
+
(('note:メンテナー交代'))
|
343
|
+
* Me\n
|
344
|
+
(('note:私'))
|
345
|
+
|
346
|
+
= test-unit
|
347
|
+
|
348
|
+
* Since 2008-03
|
349
|
+
* Active development\n
|
350
|
+
(('note:開発は活発'))
|
351
|
+
* High backward compatibility\n
|
352
|
+
(('note:高い後方互換性'))
|
353
|
+
* Exception: Inheritance, Mixin\n
|
354
|
+
(('note:例外:継承時・Mixin時の挙動'))
|
355
|
+
|
356
|
+
= minitest
|
357
|
+
|
358
|
+
* Since 2008-10
|
359
|
+
* Active development\n
|
360
|
+
(('note:開発は活発'))
|
361
|
+
* The author is the new maintainer of Test::Unit\n
|
362
|
+
(('note:作者はTest::Unitの新メンテナー'))
|
363
|
+
|
364
|
+
= minitest and Test::Unit
|
365
|
+
|
366
|
+
* Mini, simple, clean and fast\n
|
367
|
+
(('note:小さくてシンプルでキレイで速い'))
|
368
|
+
* The author said:\n
|
369
|
+
(('note:作者曰く'))
|
370
|
+
* 100% Test::Unit compatible\n
|
371
|
+
(('note:Test::Unitと100%互換'))
|
372
|
+
|
373
|
+
= test/unit in Ruby 1.9
|
374
|
+
|
375
|
+
* Not Test::Unit (('note:but (({/\\Atest.+unit\\z/i}))'))\n
|
376
|
+
(('note:Test::Unitではないが(({/\\Atest.+unit\\z/i}))ではある'))
|
377
|
+
* Provide Test::Unit API\n
|
378
|
+
(('note:Test::Unit互換APIを提供'))
|
379
|
+
* Wrapper of minitest\n
|
380
|
+
(('note:minitestのラッパー'))
|
381
|
+
* Ruby developers develop it\n
|
382
|
+
not minitest author\n
|
383
|
+
(('note:minitestの作者ではなくRuby開発者が開発'))
|
384
|
+
|
385
|
+
= Wrap up: Ruby 1.9 times\n(('note:Ruby 1.9時代のまとめ'))
|
386
|
+
|
387
|
+
* Ruby drops Test::Unit\n
|
388
|
+
(('note:RubyがTest::Unitを捨てた'))
|
389
|
+
* (('note:Test::Unit → test-unit gem'))
|
390
|
+
* Ruby bundles minitest\n
|
391
|
+
(('note:Rubyはminitestをバンドルした'))
|
392
|
+
* Ruby creates test/unit\n
|
393
|
+
(('note:(test/unit provides Test::Unit API)'))\n
|
394
|
+
(('note:RubyはTest::Unit APIを提供する(({test/unit}))を新しく作った'))
|
395
|
+
|
396
|
+
= Ruby 2.0 times\n(('note:Ruby 2.0の時代'))
|
397
|
+
|
398
|
+
* 2013-
|
399
|
+
* No highly important things\n
|
400
|
+
(('note:特筆すべきことはない'))
|
401
|
+
* test-unit, minitest and RSpec were actively developed\n
|
402
|
+
(('note:test-unitもminitestもRSpecも活発に開発が進んでいた'))
|
403
|
+
|
404
|
+
= Ruby 2.1 times: 1\n(('note:Ruby 2.1の時代:1'))
|
405
|
+
|
406
|
+
* 2013-
|
407
|
+
* minitest 5 introduced incompatible change\n
|
408
|
+
(('note:minitest 5で非互換の変更が入った'))
|
409
|
+
|
410
|
+
= minitest 5
|
411
|
+
|
412
|
+
* test/unit maintainer said:\n
|
413
|
+
(('note:test/unitメンテナー曰く'))
|
414
|
+
* Can't maintain test/unit with minitest 5\n
|
415
|
+
(('note:minitest 5向けのtest/unitはメンテナンスできない'))
|
416
|
+
* test/unit for minitest was dropped\n
|
417
|
+
(('note:minitestのラッパーとしてのtest/unitを捨てた'))
|
418
|
+
|
419
|
+
= Is no test/unit problem?\n(('note:test/unitがないことは問題なのか?'))
|
420
|
+
|
421
|
+
* Ruby uses test/unit for Ruby's test\n
|
422
|
+
(('note:RubyはRubyのテストにtest/unitを使っている'))
|
423
|
+
* No test/unit means existing tests can't be worked\n
|
424
|
+
(('note:test/unitがなくなると既存のテストが動かない'))
|
425
|
+
|
426
|
+
= Solution idea: 1\n(('note:解決案:1'))
|
427
|
+
|
428
|
+
* Keep bundling and using minitest 4\n
|
429
|
+
(('note:minitest 4のバンドルを継続し、使い続ける'))
|
430
|
+
* Users will be confused because the latest Ruby doesn't bundle the latest minitest\n
|
431
|
+
(('note:最新のRubyに最新のminitestがバンドルされていないとユーザーは混乱しそう'))
|
432
|
+
|
433
|
+
= Solution idea: 2\n(('note:解決案:2'))
|
434
|
+
|
435
|
+
* Bundle the latest minitest\n
|
436
|
+
(('note:最新のminitestをバンドルする'))
|
437
|
+
* Ruby uses minitest 4 and test/unit for its tests\n
|
438
|
+
(('note:Rubyのテストにはminitest 4とtest/unitを使う'))
|
439
|
+
|
440
|
+
(('wait'))
|
441
|
+
(('tag:center'))
|
442
|
+
Accepted!
|
443
|
+
|
444
|
+
= Note for idea 2\n(('note:案2の補足'))
|
445
|
+
|
446
|
+
* Need to care existing Test::Unit API users\n
|
447
|
+
(('note:既存のTest::Unit APIユーザーをケアする必要がある'))
|
448
|
+
* Backward compat. is important!\n
|
449
|
+
(('note:後方互換性は重要!'))
|
450
|
+
* Bundle test-unit gem too for Test::Unit API\n
|
451
|
+
(('note:Test::Unit互換APIのためにtest-unit gemもバンドル'))
|
452
|
+
|
453
|
+
= Wrap up: Ruby 2.1 times\n(('note:Ruby 2.1時代のまとめ'))
|
454
|
+
|
455
|
+
* Ruby developers decided maintain minitest 4 and test/unit for Ruby's tests\n
|
456
|
+
(('note:Ruby開発者はRubyのテスト用にminitest 4とtest/unitをメンテナンスすることを決めた'))
|
457
|
+
|
458
|
+
= Ruby 2.2 times: 1\n(('note:Ruby 2.2の時代:1'))
|
459
|
+
|
460
|
+
* 2014-
|
461
|
+
* Update bundled minitest to 5\n
|
462
|
+
(('note:バンドルしているminitestを5に更新'))
|
463
|
+
* Move minitest 4 and test/unit to test/\n
|
464
|
+
(('note:minitest 4とtest/unitはtest/以下に移動'))
|
465
|
+
|
466
|
+
= Update minitest to 5\n(('note:minitest 5に更新'))
|
467
|
+
|
468
|
+
# coderay diff
|
469
|
+
- lib/minitest/*.rb
|
470
|
+
+ test/lib/minitest/*.rb
|
471
|
+
- lib/test/unit.rb
|
472
|
+
+ test/lib/test/unit.rb
|
473
|
+
- lib/test/unit/**/*.rb
|
474
|
+
+ test/lib/test/unit/**/*.rb
|
475
|
+
|
476
|
+
= Ruby 2.2 times: 2\n(('note:Ruby 2.2の時代:2'))
|
477
|
+
|
478
|
+
* Bundle test-unit gem again for users\n
|
479
|
+
(('note:再びtest-unit gemをバンドル'))
|
480
|
+
* Ruby 1.9 dropped test-unit gem\n
|
481
|
+
(('note:Ruby 1.9はtest-unit gemを捨てた'))
|
482
|
+
|
483
|
+
= Bundle test-unit again\n(('note:test-unitを再びバンドル'))
|
484
|
+
|
485
|
+
test-unit gem provides:
|
486
|
+
|
487
|
+
lib/test-unit.rb
|
488
|
+
lib/test/unit.rb
|
489
|
+
lib/test/unit/**/*.rb
|
490
|
+
|
491
|
+
= test/unit in Ruby 2.2
|
492
|
+
|
493
|
+
* test/unit means test/lib/test/unit for Ruby developers
|
494
|
+
* test/unit means lib/test/unit for users
|
495
|
+
|
496
|
+
= TODO...
|
data/theme.rb
ADDED
metadata
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rabbit-slide-kou-rubykaigi-2015
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2015.12.12.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Kouhei Sutou
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-12-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rabbit
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.0.2
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.0.2
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rabbit-theme-clear-code
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.0.5
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.0.5
|
41
|
+
description: |-
|
42
|
+
This talk describes about the history of testing framework in Ruby.
|
43
|
+
|
44
|
+
Ruby 2.2 bundles two testing frameworks. They are minitest and test-unit. Do you know why two testing frameworks are bundled? Do you know that test-unit was bundled and then removed from Ruby distribution? If you can't answer these questions and you're interested in testing framework, this talk will help you.
|
45
|
+
|
46
|
+
This talk describes about the history of bundled testing framework in Ruby and some major testing frameworks for Ruby in chronological order.
|
47
|
+
email:
|
48
|
+
- kou@clear-code.com
|
49
|
+
executables: []
|
50
|
+
extensions: []
|
51
|
+
extra_rdoc_files: []
|
52
|
+
files:
|
53
|
+
- ".rabbit"
|
54
|
+
- README.rd
|
55
|
+
- Rakefile
|
56
|
+
- config.yaml
|
57
|
+
- images/clear-code-is-a-silver-sponsor.png
|
58
|
+
- pdf/rubykaigi-2015-the-history-of-testing-framework-in-ruby.pdf
|
59
|
+
- the-history-of-testing-framework-in-ruby.rab
|
60
|
+
- theme.rb
|
61
|
+
homepage: http://slide.rabbit-shocker.org/authors/kou/rubykaigi-2015/
|
62
|
+
licenses:
|
63
|
+
- CC BY-SA 4.0
|
64
|
+
metadata: {}
|
65
|
+
post_install_message:
|
66
|
+
rdoc_options: []
|
67
|
+
require_paths:
|
68
|
+
- lib
|
69
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0'
|
74
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
79
|
+
requirements: []
|
80
|
+
rubyforge_project:
|
81
|
+
rubygems_version: 2.4.5.1
|
82
|
+
signing_key:
|
83
|
+
specification_version: 4
|
84
|
+
summary: The history of testing framework in Ruby
|
85
|
+
test_files: []
|