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
blitz_test_speed.pdf
Search
Tetsuya Fukuda
February 03, 2023
Technology
0
130
blitz_test_speed.pdf
Tetsuya Fukuda
February 03, 2023
Tweet
Share
More Decks by Tetsuya Fukuda
See All by Tetsuya Fukuda
辛くない受託開発
ghken
0
2.7k
Other Decks in Technology
See All in Technology
Amazon Athena で JSON・Parquet・Iceberg のデータを検索し、性能を比較してみた
shigeruoda
1
270
組織全員で向き合うAI Readyなデータ利活用
gappy50
5
1.9k
Retrospectiveを振り返ろう
nakasho
0
140
AWS DMS で SQL Server を移行してみた/aws-dms-sql-server-migration
emiki
0
270
ストレージエンジニアの仕事と、近年の計算機について / 第58回 情報科学若手の会
pfn
PRO
4
920
Zero Trust DNS でより安全なインターネット アクセス
murachiakira
0
130
様々なファイルシステム
sat
PRO
0
270
【SORACOM UG Explorer 2025】さらなる10年へ ~ SORACOM MVC 発表
soracom
PRO
0
180
ラスベガスの歩き方 2025年版(re:Invent 事前勉強会)
junjikoide
0
640
AI連携の新常識! 話題のMCPをはじめて学ぶ!
makoakiba
0
160
「タコピーの原罪」から学ぶ間違った”支援” / the bad support of Takopii
piyonakajima
0
160
設計に疎いエンジニアでも始めやすいアーキテクチャドキュメント
phaya72
18
12k
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
49
14k
BBQ
matthewcrist
89
9.9k
Leading Effective Engineering Teams in the AI Era
addyosmani
7
670
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Optimizing for Happiness
mojombo
379
70k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Navigating Team Friction
lara
190
15k
Raft: Consensus for Rubyists
vanstee
140
7.2k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.3k
Transcript
Blitz.jsのテスト遅い問 題を解決したい!! KYOTO.JS 18
自己紹介 GHKEN Twitter: @gendaihyousyou RIT Inc. CTO/CHRO ◦ Next, Rails,
AWS多め 2歳の娘と0歳の息子
Blitz.js使ってますか? Next.js + Prismaなフルスタックフレームワーク スポンサーやってます
課題
テストが遅い
テストが遅い
単純な例で確認してみる
単純な例で確認してみる
テストが増えるとどうなるか
テストが増えるとどうなるか
どうやらこいつが悪そう
db.$resetは何をしてるのか
db.$resetを使わずにど うするか
Railsだとどうなってる?
SAVEPOINTを使ってる
ただ、現状のPrismaではサポートされてなさそう
truncateしてみる
おもったより早くない
なぜか
deleteにしてみる
早くなった
結論 ⚫db.$resetを使わない ⚫データが少ないならtruncateではなくdeleteのほうが早い ⚫(今回は問題に遭遇しなかったけど)deleteだけだとauto incrementずれるので注意 ⚫RailsだとSAVEPOINT使ってネストしたトランザクションからロールバックしてるので早い