Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Node.js製CLIツールのE2Eテストに取り組んでいます / Working on E2E...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
tasshi
December 14, 2023
Programming
1.7k
0
Share
Node.js製CLIツールのE2Eテストに取り組んでいます / Working on E2E testing of Node.js CLI tools
Nihonbashi.js #8 のLT資料です。
イベント情報はこちら↓
https://nihonbashi-js.connpass.com/event/301794/
tasshi
December 14, 2023
More Decks by tasshi
See All by tasshi
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
260
プロダクトにも、チームにも。サイボウズがAIと共に歩む理由 / YAPC 2025 Cybozu Team AI
tasshi
0
530
Web Streams APIの基本と実践、TypeScriptでの活用法 / TSKaigi 2025 Web Streams API
tasshi
6
2.1k
2024年のkintone API振り返りと2025年 / kintone API look back in 2024
tasshi
0
390
Streams APIとTCPフロー制御 / Web Streams API and TCP flow control
tasshi
2
680
GitHub Projectsを自動化するGitHub CLIテクニック / Automate GitHub Projects with GitHub CLI
tasshi
2
2k
SDK開発チームのプロダクトオーナーが考えていること / Product management of SDK
tasshi
1
2.1k
モダンな開発環境を用いた カンタン/安全なカスタマイズ開発 / kintone devCamp Boost! 2023
tasshi
0
1k
Node Streamでメモリ性能改善、そしてWeb Streams APIへ / Improving memory performance of the CLI tool using Node Stream
tasshi
1
3.8k
Other Decks in Programming
See All in Programming
(Re)make Regexp in Ruby: Democratizing internals for the JIT
makenowjust
2
180
Swift Concurrency Type System
inamiy
0
530
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
4
3k
GitHubCopilotCLIをはじめよう.pdf
htkym
0
180
アクセシビリティ試験の"その後"を仕組み化する
yuuumiravy
0
150
Claude Codeをカスタムして自分だけのClaude Codeを作ろう
terisuke
0
140
Radical Imagining - LIFT 2025-2027 Policy Agenda
lift1998
0
370
Running Swift without an OS
kishikawakatsumi
0
840
PHP で mp3 プレイヤーを実装しよう
m3m0r7
PRO
0
280
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
570
書籍「ユーザーストーリーマッピング」が私のバイブル
asumikam
3
350
ルールルルルルRubyの中身の予備知識 ── RubyKaigiの前に予習しなイカ?
ydah
1
180
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Amusing Abliteration
ianozsvald
1
150
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
490
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.2k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
680
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
130
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
280
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Transcript
/PEFKT$-*πʔϧͷ &&ςετʹऔΓΜͰ͍·͢ / J I P O C B T
I J K T α Π Ϙ ζ ג ࣜ ձ ࣾ L J O U P O F % 9 ν ʔ Ϝ U B T T I J
XIPBNJ 🚀 ా խ࣏ !UBTTIJ@NF • αΠϘζגࣜձࣾ • LJOUPOF %9νʔϜ
• 1048& • 4LJMMT • /PEFKT • 5ZQ F 4 DS JQ U ݘ ʹ ͳ Γ ͨ ͍ ɺ ɺ ɺ
LJOUPOF%9νʔϜ 🛠 • LJOUPOFฐࣾఏڙͷΫϥυαʔϏε • %9։ൃऀମݧ %FWFMPQFSF9QFSJFODF • LJOUPOFͷΤίγεςϜ։ൃऀͷ%9্ •
4%,ɾ$ -*πʔϧͷఏڙɾอक 044 • ґଘϥΠϒϥϦͷ$ POUS JC VUJPO • /PEFKT 5ZQF4DSJQU F UDʜ
$ZCP[V*OTJEF0VU I U U Q T
C M P H D Z C P [ V J P F O U S Z
/PEFKT$-*πʔϧͷ &&ςετʹऔΓΜͰ͍·͢
DMJLJOUPOF • LJOUPOFͷϨίʔυΛΠϯϙʔτΤΫεϙʔτ͢Δ$ -*πʔϧ • 5ZQ F 4 DS JQ
UͰ։ൃ • WF SDF MQLHͰ࣮ߦϑΝΠϧʹมͯ͠ • 4&" ͕4UBC MF ʹͳͬͨΒҠߦ͍ͨ͠ɺɺɺ
ݩʑͷ։ൃϑϩʔͰɺɺɺ • νʔϜʹ2"͍ͳ͍ • 48&͕Ϣχοτςετ +FTU Λॻ͍͍ͯͨ • 13ͷ" TTJHOF
F 3F WJF XF S͕அ • ΧόϨοδͦ͜·Ͱѱ͘ͳ͔ͬͨ • 4 UBUF NF OUT • # S BODIFT • 'VODUJPOT • -JOFT
ࠔΓ͝ͱ • 48&ϝϯόʔͷೖΕସΘΓ • 5ZQ F 4 DS JQ U
/PEF KTʹ׳Ε͍ͯͳ͍ϝϯόʔ͕૿͑ͨ • 2" ͕͍ΔνʔϜग़ͷϝϯόʔ͕૿͑ͨ • ϝϯόʔ͕҆৺ͯ͠։ൃͰ͖ͳ͍ঢ়ଶʹ • ࣮ߦϑΝΠϧɺ࣮ߦڥʹؔ͢Δෆ۩߹͕ൃੜ • ωοτϫʔΫ ϓϩΩγɾূ໌ॻ ؔ࿈ • ϑΝΠϧγεςϜؔ࿈ ͳͲ
ςετΛͪΌΜͱΖ͏ʂ
ςετΛͪΌΜͱΔಓͷΓ ςετઓུ ࡦఆ ςετέʔε ࡞ ࣗಈςετ ࣮ ࣗಈςετج൫ ߏங
2"ϝϯόʔΛଐ
ςετઓུ • ͳͥςετ͢Δͷ͔ • ։ൃऀ͕όάɾσάϨͷݒ೦Λ࠷খԽͯ͠։ൃܧଓͰ͖Δ • ΤϯυϢʔβʔ͕࣭ͷอͨΕͨΛར༻Ͱ͖Δ • ͲΜͳςετΛ͢Δͷ͔ •
γεςϜɾιϑτΣΞͷ࣭Ϟσϧ • ΞʔΩςΫνϟ • &&ςετ Ϣχοτςετ͋ΔͷͰ • ࣗಈςετج൫
ςετέʔε࡞ • γεςϜɾιϑτΣΞͷ࣭Ϟσϧ • ରԠ͢ΔDMJ LJOUPOFͷςετ؍Λ࡞ • 2"͕ୟ͖Λ࡞ • ୟ͖Λݩʹ48&2"
Ͱ࠷ऴతͳςετέʔεΛ࡞
ࣗಈςετج൫ߏங • ςεςΟϯάϑϨʔϜϫʔΫ • ࣮ߦڥ • ςετ༻αʔό ࣮ߦڥ ςετ༻αʔό
ςεςΟϯά ϑϨʔϜϫʔΫ BBBBB CCCCC DDDDDD "QQ *% 5FYU /VNCFS DMJ LJOUPOF 4FUVQ"QQ &YFDVUFDMJLJOUPOF 7FSJGZUIFSFTVMU
ςεςΟϯάϑϨʔϜϫʔΫ $-*ςετ+4ΤίγεςϜͰ༗໊ͳͷΛௐࠪ • CBUTDPSF • +FTU • 7JUFTU • $VDVNCFSˡ͜Εʹͨ͠
$VDVNCFS • #%% ৼΔ͍ۦಈ։ൃ ϑϨʔϜϫʔΫ • ςετʹ༷ʹԊͬͨʮৼΔ͍ʯΛهड़͢Δ • (IFSLJOه๏ •
(JWF O 8IFO 5IFO • ΫϩεϓϥοτϑΥʔϜ • +BWB +BWB4DSJQU 3VCZ /&5ͳͲ • /PEFKTͰ$ VDVNC F S KTΛ༻
Ͳ͏ΒݱͬΆ͍ ˣ৽ ˣچ I U U Q T
O Q N U S F O E T D P N ! D V D V N C F S D V D V N C F S W T D V D V N C F S
ςετ༷ͱςετίʔυͷ 'FBUVSFਓؒ 4DFOBSJPΛങ͏ (JWFOਓ͕ؒʹ͍Δ 8IFOਓ͕ؒΛങ͏ 5IFOਓ͕ؒΛ࣋ͭ (JWFO lਓ͕ؒ\TUSJOH^ʹ͍Δz
GVODUJPO \ʜ^ 8IFO lਓ͕ؒ\TUSJOH^Λങ͏z \ʜ^ ʜ ςετ༷ IVNBOGFBUVSF ςετ࣮ TUFQ@EFGJOJUJPOTIVNBOUT
$VDVNCFSΛ࠾༻͢ΔϝϦοτ • ςετ༷ॻ͕ࣗવͱ࡞͞ΕΔ • γφϦΦΛॻ͔ͳ͍ͱࢼݧͰ͖ͳ͍ • εςοϓʹର࣮ͯ͠Λॻ͘ • ࠶ར༻͘͢͠͠Α͏ͱ͢Δྗ͕ಇ͘ •
࣮ͷείʔϓ͕খ͘͞ͳΓ͍͢ • 2"͕ࣗಈςετΛݟ͍͢ • εςοϓఆ͕ٛ͋Ε2" ͕ࣗಈςετΛՃͰ͖Δ
ߏஙͨࣗ͠ಈςετج൫ (JU)VC"DUJPOT LJOUPOFڥ $VDVNCFSKT BBBBB CCCCC
DDDDDD "QQ *% 5FYU /VNCFS DMJ LJOUPOF 4FUVQ"QQ &YFDVUFDMJLJOUPOF 7FSJGZUIFSFTVMU
ࣗಈςετ࣮ • ࣗಈԽ༧ఆͷࢼݧ͕݅ • ޙʹͳΔ΄ͲطଘͷεςοϓఆٛΛ࠶ར༻Ͱ͖ͨ • ࣮͕ٸ্ঢ • ং ൫
ε ϓ Ϧ ϯ τ ʹ ݅ લ ޙ • ऴ ൫ ε ϓ Ϧ ϯ τ ʹ ݅ લ ޙ
Ͳ͏ͳͬͨʁ
࣮·͔ͩΓ·ͤΜ • લεϓϦϯτʹશςετέʔεΛ࣮͠ऴΘͬͨ • ࣮ऴΘ͔ͬͨΓͳͷͰޮՌଌఆ͜Ε͔Β • ͨͩલड़ͷ$VDVNCFSͷϝϦοτ͢Ͱʹײ͍ͯ͡Δ • ςετέʔεͷ্࣮͕ •
2" ͕ςετέʔεΛ࣮
ؾʹͳͬͯΔ͜ͱɾࠓޙͷ՝ • ࣮ߦ࣌ؒͱ͔ • ݱࡏ ఔ • &&ภॏʹͳΒͳ͍ʁ • Ҿ͖ଓ͖Ϣχοτςετॻ͍͍ͯ͘
• ֎ͱத͔Β࣭Λ୲อ͍ͯ͘͠
·ͱΊ • $-*πʔϧͷ&&ςετΛ࣮ͨ͠ • $VDVNCFSͷ࠾༻Ͱ48&⁶2"͕࿈ܞ͘͢͠ͳͬͨ • ޮՌ͜Ε͔Βଌఆ͠·͢