同僚の環境(WSL2)上で自動テストが遅いので検証したが、どうにも再現しない。仕事で使っているコードを持ち出したいが、そうもいかない。
WindowsのWSL2でReact Testing Libraryが遅いらしいので検証した
2023/8/24 22:20:00
JavaScriptのReactアプリとテストコードで検証
実験用のコード(JavaScript)
import { render, screen } from '@testing-library/react';
import App from './App';
for (let i = 0; i < 1000; i++) {
test('renders learn react link', () => {
render(<App />);
const linkElement = screen.getByText(/learn react/i);
expect(linkElement).toBeInTheDocument();
});
}
結果
Powershell: 16.379 s
WSL2(Ubuntu): 7.914 s
TypeScriptのReactアプリとテストコードで検証
実環境ではTypeScriptを使っており、TypeScriptからJavaScriptへのトランスパイルに時間をとられている可能性がある。
そこで、TypeScriptでのReactAppを作成し、App.test.tsxを30個までコピペして増やし、テストにかかる時間を計測した
結果
Powershell: 4.725 s
WSL2(Ubuntu): 1.851 s
TypeScriptのReactアプリとテストコードでuserEvent.typeを検証
テストコード
import { render, screen } from '@testing-library/react';
import App from './App';
import userEvent from '@testing-library/user-event';
for (let i = 0; i < 100; i++) {
test('renders learn react link', () => {
render(<App />);
const linkElement = screen.getByText(/learn react/i);
const inputElement = screen.getByRole("textbox")
userEvent.type(inputElement, "this is test typing")
expect(linkElement).toBeInTheDocument();
});
}
結果
Powershell: 29.874 s
WSL2(Ubuntu): 19.381 s