-
Notifications
You must be signed in to change notification settings - Fork 309
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor: browser:e2eテストをモック用エンジンを使うように変更 #2442
The head ref may contain hidden characters: "\u30E2\u30C3\u30AF\u7528\u30A8\u30F3\u30B8\u30F3\u3092\u4F7F\u3063\u305Fe2e\u30C6\u30B9\u30C8\u306B\u5DEE\u3057\u66FF\u3048"
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot reviewed 5 out of 7 changed files in this pull request and generated no comments.
Files not reviewed (2)
- .env.test: Language not supported
- tests/unit/backend/common/snapshots/configManager.spec.ts.snap: Language not supported
🚀 プレビュー用ページを作成しました 🚀 更新時点でのコミットハッシュ: |
ブラウザe2eテストを置き換えるにはmockの機能が足りなすぎたので、一旦draftにします。 |
"074fc39e-678b-4c13-8916-ffca8d505d1d": { | ||
"00000000-0000-0000-0000-000000000000": { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
もともと.env.test
を見ていたらしく、ついでに変わってしまった
// テスト用にランダムな文字列を生成 | ||
const randomString = Math.random().toString(36).slice(-8); | ||
const zenkakuRandomString = randomString.replace(/[\u0021-\u007e]/g, (s) => { | ||
return String.fromCharCode(s.charCodeAt(0) + 0xfee0); | ||
}); | ||
const targetString = "あいうえお"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
未知語だと発音がなくなってしまうので、既知の言葉に
await textField.fill("1234"); | ||
await textField.fill("あれもこれもそれもどれも"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
モックは助詞でアクセント句を区切るので、数字は正しくアクセントを区切れない。
ということで助詞だらけの言葉に置き換えました。
全ブラウザテストがエンジンmockで通過 🎉 |
をマージできたのでレビューを開けました! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
エンジンとモックそれぞれインスタンスがあって、それを URL に従ってスイッチするようになってます。
正確にはこんな感じ。
EngineFactory = EngineImpl()
MockFactory = MockImpl()
ConnectorFactory = () => {
EngineFactory()
MockFactory()
}
ちょっと変更が多いので、run.exeの権限を変える部分のリファクタリングのPRと、.env.test-electronの切り出しのPRを別で投げたいと思います! |
73a4f5a
to
b80b70e
Compare
# CI環境でのe2eテスト用の.envファイル。CI時に値が上書きされる。 | ||
# CI環境でのelectronテスト用の.envファイル。CI時に値が上書きされる。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ブラウザe2eはエンジンモックにしたので、electron専用にしました。
@@ -50,17 +50,12 @@ async function validateInputTag( | |||
test("「設定」→「読み方&アクセント辞書」で「読み方&アクセント辞書」ページが表示される", async ({ | |||
page, | |||
}) => { | |||
test.skip(!process.env.CI, "環境変数CIが未設定のためスキップします"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mockになって辞書テストが環境を汚さなくなったのでローカルでも実行するように
変更箇所で独立させれるものはできる限り別プルリクエストで出し、マージもされたのでレビュー可能になったと思います!! @sevenc-nanashi すみません、もしよかったらレビューいただけると・・・! 🙇 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
特に問題は無さそう。
レビューありがとうございます!!! マージします!!! |
内容
モック用エンジンを使ってブラウザe2eテストを書き換えます。
変更点は3つほどです。
mock://mock
とするとモック用エンジンが使えるように関連 Issue
その他
が先に必要。
.github/workflows/test.yml
でやってるnemoエンジンダウンロードもなくせるかと思ったけど、まだelectron:e2e側が残ってるので難しそう。electron:e2e側はエンジンプロセス起動もテストに含まれてるので、実際にプロセス起動できないといけなそう・・・。