하지만 가장 상위 테스트 케이스의 body 함수가 async 함수이면 테스트 케이스 수집 과정에서 누락됨
※ 조금 더 찾아본 원인
직접적인 원인을 알아보고 싶어서 playwright의 test.describe 함수를 살펴봤습니다. - 참고 링크: https://github.com/microsoft/playwright/blob/9bc45ea2fc69ec1109581d36c6a5a4cf2300ee9f/packages/playwright/src/common/testType.ts#L168
테스트 케이스의 body 함수를 실행하는 test.describe describe 함수를 살펴보니 github 이슈에서 설명한 것처럼 body 함수를 실행하고 있더라고요.
describe 함수는 synchronous 함수이기 때문에 body 함수가 async 함수일 경우에는 내부에 작성된 테스트 케이스 함수가 실행되더라도 적용되지 않는 것이었습니다...
import { test } from '@playwright/test';
import _fetch from 'sync-fetch';
test.describe('test-sync-function', () => {
let data = _fetch('http://test-server');
// test scripts
// ...
// ...
})
데이터 조회를 통한 테스트 케이스 실행은 정말 간단한 작업일 줄 알았는데 생각보다 시간을 소요해서 살짝 당황스러웠던 경험입니다.
Playwright를 사용하시는 분들 중에 비슷한 이슈를 겪는 분들께 도움이 되면 좋겠네요!