test: 音声書き出しe2eテスト - #2473
Hidden character warning
Conversation
|
🚀 プレビュー用ページを作成しました 🚀 更新時点でのコミットハッシュ: |
| interrogativeUpspeak: false, | ||
| adjustPauseLength: true, | ||
| interrogativeUpspeak: true, |
There was a problem hiding this comment.
ポーズの長さを変えるのもテストしたかったのでモックを修正しました。
| text: "、", | ||
| vowel: "pau", | ||
| vowelLength: 1 - 1 / (accentPhrases.length + 1), | ||
| vowelLength: 1 - 1 / (accentPhrases.length + 2), |
There was a problem hiding this comment.
今のaccentPhrasesの数がaccentPhrases.lengthに入っていて、最初は0なので1 - 1/1になって0(ポーズの長さが0)になってしまってたので、+2にしてみました。
There was a problem hiding this comment.
window.backends関数のモックを作るにあたっていくつか妥協したポイントもあったのでコメント。
より良い解決策があれば試したいかも。
- mockを戻せるように作ってない
- 今モック化したのはダイアログ表示の部分と、ファイル書き出しの部分
- ダイアログは表示した瞬間ハングするのと、ファイル書き出しもできないので、まあどちらも戻さなくても問題にならないかなと思い、とりあえずそのままにしています
- 戻せるようにも作れそうだけど、汎用的に書くのは結構難しいかも(全部のモックを戻す関数を作るとかが難しそう)
- 一般化していない
- 他にモックを刺したかった時にさくっとモックをさせるように作れてない
- 今のうちに共通化した方がいいかもだけど・・・良い方法がパッと思いつかなかったので一旦そのままにしています
|
@sevenc-nanashi 完成したのでレビューお願いできると・・・! 🙇 妥協したポイントこちらです。。 なんかもっとこうした方がいいんじゃないかとかあれば。。。 |
There was a problem hiding this comment.
Copilot reviewed 14 out of 15 changed files in this pull request and generated no comments.
Files not reviewed (1)
- tests/unit/mock/engineMock/snapshots/index.spec.ts.snap: Language not supported
Comments suppressed due to low confidence (2)
src/mock/engineMock/index.ts:104
- Using a null value for pauseLength may lead to type or runtime issues if downstream logic expects a numeric value. Consider initializing this parameter with a default numeric value or handling null explicitly.
pauseLength: null,
src/mock/engineMock/talkModelMock.ts:181
- [nitpick] The change in the divisor from (accentPhrases.length + 1) to (accentPhrases.length + 2) alters the computed vowelLength, potentially affecting audio output. Verify that this adjustment meets the intended voice synthesis requirements.
vowelLength: 1 - 1 / (accentPhrases.length + 2),
sevenc-nanashi
left a comment
There was a problem hiding this comment.
細かいところを書きましたが、それ以外は問題ないと思います。
Co-authored-by: Nanashi. <sevenc7c@sevenc7c.com>
There was a problem hiding this comment.
Copilot reviewed 14 out of 15 changed files in this pull request and generated no comments.
Files not reviewed (1)
- tests/unit/mock/engineMock/snapshots/index.spec.ts.snap: Language not supported
Comments suppressed due to low confidence (2)
src/mock/engineMock/talkModelMock.ts:181
- The denominator in the vowelLength calculation changed from (accentPhrases.length + 1) to (accentPhrases.length + 2). Please verify that this adjustment is intentional and correctly reflects the desired audio timing behavior.
vowelLength: 1 - 1 / (accentPhrases.length + 2),
src/mock/engineMock/index.ts:104
- Using null for pauseLength may lead to unexpected behavior if a numeric value is expected. Confirm that this value is acceptable by the engine/mock configuration.
pauseLength: null,
|
たぶん大丈夫だと思うのでマージします! レビューありがとうございました!! |
内容
エンジンモックを使った音声書き出しのテストを書いてみました。
実際の音声も手元にpullしたりダウンロードしたりすれば聞けます。
その他
ブラウザ内でのファイル書き込みをどうモックするかで悩みました。
最終的にbackendのwriteFileをDI(というよりもmock?)することで解決しました。
他の方法としてブラウザに標準的についてる
FileHandleあたりを差し替えることもできるんですが、↓の用にいろいろ問題があったのでやめました。showOpenFilePickerなどのファイル選択ダイアログをmockできないshowOpenFilePickerをDIして適当なFileHandlerを返すこともできるけど、FileHandler周りのテストをPlaywrightがサポートしていないあとテストをplaywrightではなくvitestのブラウザモードで実装するのも考えましたがやめました。
試したところvitest-browser-vueがまだ色々と対応していないのか、ファイルが読み込めてなさそうなエラーが出たので引き返しました。もうちょっと様子見になりそう。