Detoxとは
https://github.com/wix/detox/
モバイルアプリでE2Eテストの自動化を行えるライブラリ
テスト成果物(Artifacts)とは
Detoxでは、v8からE2Eテストの結果を成果物(Artifacts)として記録しておくことができます。
https://github.com/wix/detox/blob/master/docs/APIRef.Artifacts.md
具体的には以下のような記録を残すことが可能です。
- .log
形式のログ
- .png
形式のテスト前後のスクリーンショット
- .mp4
形式のテスト中の画面遷移の動画
何が問題か
React Native ExpoでDetoxを利用するときはdetox-expo-heplers
を利用しなければなりません
https://github.com/expo/detox-expo-helpers
通常であれば、Expoを起動した後にreloadApp
を呼び出して自分のアプリを読み込むのですが、Detoxの問題でv7.2.0以降は読み込み完了が取れずテストがここで止まってしまいます。
firstTest.spec.js
const { reloadApp } = require('detox-expo-helpers');
describe('Example', () => {
beforeEach(async () => {
await reloadApp();
// これ以降には進まない
});
it('should have welcome screen', async () => {
await expect(element(by.id('welcome'))).toBeVisible();
});
});
結局
Expoでdetoxを使いたい場合、テスト成果物は諦めてv7.2.0を利用しましょう(React Nativeは大丈夫)