VOICEVOX/voicevox_core

C APIのテスト機構を破棄し、GoogleTestに置き換える

Closed this issue · 2 comments

内容

現在C APIのテストは #425 で作った機構を使っています。ただ当時は、C/C++でテストを書くという選択肢をあまり真面目に検討しなかった記憶があります。 ここで今一度、Rustでのテストで本当によいのか考えておきたいです。

ちなみに他のプロジェクトではこうなっているようです。

  • Apache OpenDAL: GoogleTest
  • Apache Datafusion: BashとRubyのスクリプトが置かれているだけ
  • Rustls: Rustのテスト機構
  • 他: まだあまり調査していない

Pros 良くなる点

  • #425 で作った独自のテスト機構を破棄できる
  • CXXによるC++ APIを作ったときにテストが作りやすくなる
    (C APIは今のRustの機構、C++ APIはGoogleTestというのもありかも)

Cons 悪くなる点

  • 「VOICEVOX COREをメンテするにあたり把握しておかないといけない世界」が広がってしまう
    (とはいっても今のテスト機構が誰でも一目で理解できるかというと微妙かなと思ってます)

実現方法

VOICEVOXのバージョン

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

  • Windows
  • macOS
  • Linux
  • Android
  • iOS

その他

どちらかというと今のままRustでテストする形が良いのかなと思いました!
C++ APIが増えたときにGoogleTestにするのは考えられうる・・・かも。

というのも移行コストが高すぎるなーと。
そしてコストかけてもできることは変わらない。
メリットとしてC/C++を得意な人からコミットをもらいやすくなるのはありそうだけど、現状移行コストを上回らなさそう。
現状メンテコストがかなり高いのであれば、勉強して移行しても良いかも。
(とはいえGoogleTestもメンテコスト高い可能性もありそうですが 😇 )


もし↑の考え方に同感なら、事故防止のためにissueはcloseしておいたほうが良さそう感!

ですね。C++ APIを作るときに考えればよさそう。