Sakura: googletest による単体テストを導入する

Created on 24 Jun 2018  ·  12Comments  ·  Source: sakura-editor/sakura

https://github.com/sakura-editor/management-forum/issues/10

googletest による単体テストを導入する

  • googletest は GitHub で管理されているので git submodule で取り込む
  • appveyor では git submodule init/git submodule update を実行する
  • googletest は cmake でビルドする
  • googletest は https://github.com/google/googletest を使う
  • テストコードは tests ディレクトリ以下に配置する
  • googletest 本体もtests ディレクトリ以下に配置する
  • このチケットのスコープは何らかの単体テストができれば OK とする
UnitTest enhancement research

Most helpful comment

このチケットのスコープは何らかの単体テストができれば OK とする

All 12 comments

このチケットのスコープは何らかの単体テストができれば OK とする

「調査」ってラベルいらないですかね。

なんとなく「UnitTest」のラベルの付け所のイメージがわいてないです。

googletest は cmake でビルドする

コンソールからビルド・実行するイメージですか?

個人的にはテストコードも VS から実行できたほうが手元でのテストの確認がしやすくてありがたいです。

あ、すみません、 https://github.com/sakura-editor/management-forum/issues/10#issuecomment-399754538 で言及されてましたね。googletest が cmake しか今後サポートされなそうということであれば仕方ないです。

cmake は ビルドツールではなく、ネイティブのビルドツール用のプロジェクトの生成ツールなので、cmake で visual studio 用のプロジェクトを生成したら、visual studio でテストコードをデバッグできます。好きなところにブレークポイント張ってデバッグできます。

やり方は対応するときにドキュメント書きます。

visual studio でテストコードをデバッグできます。好きなところにブレークポイント張ってデバッグできます。

お、すばらしいです!まさにそこを気にしていました

googletest は https://github.com/google/googletest/releases/tag/release-1.8.0 を使う

忘れてたけど release-1.8.0 だと、以下の警告が出て、警告がエラーとなる設定なので
ビルドが失敗する。

  tests\googletest\googletest\include\gtest\gtest-printers.h(600): warn
ing C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and w
ill be REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this wa
rning. [tests\build\googletest\googlemock\gtest\gtest.vcxproj]


最新版だと
https://github.com/google/googletest/issues/1595
のエラーになる。

PR を投げているけどマージされないまま放置されている。
https://github.com/google/googletest/pull/1606

PR を投げているけどマージされないまま放置されている。

お、これは誰が怠慢なのかな。。。???。。。

PR を投げているけどマージされないまま放置されている。
https://github.com/google/googletest/pull/1606

変更箇所の意図が通じてない気配を感じたので応援コメントしてきました。

あのファイルは元々UTF-8っぽいです。
「いったい何を変更したんだ?」とか
「なんで変更が必要なんだ?」とか思われてたのかな、と。

変更箇所の意図が通じてない気配を感じたので応援コメントしてきました。

ありがとうございます。

あのファイルは元々UTF-8っぽいです。

違います。

https://github.com/google/googletest/pull/1588 (https://github.com/google/googletest/commit/b539167cf0254f521b791e908f6d3a5ff3f30245)

で修正されるまでは UTF-8 ではありませんでした。

311 で単体テストの枠組みを導入したのでクローズ。

Was this page helpful?
0 / 5 - 0 ratings