Skip to content

C APIのE2Eテストを作る #424

@qryxip

Description

@qryxip

内容

#400 (comment)

Pros 良くなる点

  • 単体テストがカバーしない範囲をテストできる
    • ログ出力なども含む

Cons 悪くなる点

  • 実装コスト

実現方法

Rustのintegration test内でDLLのテストをします。

まず/crates/voicevox_core_c_api/tests/runみたいな場所にworkspaceを切り離したbinクレートのパッケージを作り、そこではlibloading (dlopen/LoadLibraryをやるクレート)でDLLを呼び出します。
そしてintegration test (/crates/voicevox_core_c_api/tests/{tts,tts-via-audio-query,get-version,invalid-model,missing-openjtalk-dic,…}.rs)ではそれをビルドし、assert_cmdでテストします。

この方法であれば将来このリポジトリでもcode coverageを取りたいとなったときにこの統合テストもちゃんと対象になる、と思うのですが検証はまだしていません。

VOICEVOXのバージョン

OSの種類/ディストリ/バージョン

  • Windows
  • macOS
  • Linux

その他

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions