Skip to content
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

テストを作る #2

Closed
k-okada opened this issue Aug 11, 2014 · 7 comments
Closed

テストを作る #2

k-okada opened this issue Aug 11, 2014 · 7 comments

Comments

@k-okada
Copy link
Contributor

k-okada commented Aug 11, 2014

#1 みたいなことが起るのでテストを作りたいですよね.

シミュレータそのものを立ち上げて何かのシミュレーションをして結果が
同じかどうか調べたいところなわけですが
なにかいいフレームワークはありませんでしょうか?
rostestを使っていいなら,簡単なんですが....

https://bitbucket.org/osrf/gazebo/src/d0428b5c36fae991fdf213200aefca4a7f4a6eae/test/performance/gz_stress.cc?at=default
あたりをみると,シミュレータのインスタンスを作ってテストを走らせている感じでしょうか?
openhrp3だとmodelloaderを走らせてモデルをよませる,というところをテストに入れると
rostest的なもので複数のノードを走らせた後,テストプログラムを走らせるという枠組みが
必要になると思います.
本当に実際に使っている状況とはことなりますが,modelloaderなしでモデルを読み込んでシミュレーションして
なにかテストする,というコードを言えるという事をすればgtestみたいなもので対応出来るかとは思いますが,
シミュレーション用と実際に使っている用で2つコードが出来てくる,というところがリソースが少ないプロジェクト
だと厳しいかなぁ,とも思います.

@k-okada
Copy link
Contributor Author

k-okada commented Aug 11, 2014

hrpsysはfkanehiro/hrpsys-base自体にはテストを持っていないけど,
start-jsk/hrpsys等でテストを持っていて,fkanehiro/hrpsys-base の travisで
start-jsk/hrpsysのテストをはしらせるというかなり無理矢理なことをしています.

@fkanehiro
Copy link
Owner

よくわかってないんですが、例えばgtestだとC++で1つのプログラムで完結するテストを書く必要があり、modelloader等を含むテスト専用のプログラムとなってしまう。
一方rostestだとシェルスクリプト的なことをテストとして実行できるということでしょうか。

start-jsk/hrpsysもちょっとのぞいて見たんですが、例えばPA10のテストはシミュレーションを走らせてるというのは分かるんですが、結果が正しいかどうかは何処で確認しているんでしょうか?

@k-okada
Copy link
Contributor Author

k-okada commented Aug 14, 2014

はい.そう思っています.
https://github.com/start-jsk/hrpsys/blob/master/test/test-pa10.test
ですと,

  <include file="$(find hrpsys)/samples/pa10.launch" >
    <arg name="GUI" value="false" />
    <arg name="corbaport" value="2809" />
  </include>

https://github.com/start-jsk/hrpsys/blob/master/samples/pa10.launch を呼び出し,modelloaderとhrpsysでPA10のシミュレーションを立ち上げて,

  <test test-name="pa10_sample" pkg="hrpsys" type="pa10-jointangle.py"
        args="-ORBInitRef NameService=corbaloc:iiop:localhost:2809/NameService" retry="2" />
  <test test-name="pa10_jointangle" pkg="hrpsys" type="test-jointangle.py" retry="2" />
  <test test-name="pa10_hrpsysconf" pkg="hrpsys" type="test-hrpsysconf.py" args="--host 127.0.0.1 --port 2809" retry="2" />

でそれぞれテストを実行しています.
テストのプログラムを見てみると,例えば,
https://github.com/start-jsk/hrpsys/blob/master/test/test-jointangle.py
ですと,https://github.com/start-jsk/hrpsys/blob/master/test/test-jointangle.py#L55 で,getJointAnglesで9個の配列になっているか確認,みたいな事をしています.

@fkanehiro
Copy link
Owner

そうするとrostestを使ったとしても、rosに依存するのはlaunchファイルやpythonスクリプト程度で、直接的な依存関係(ライブラリをリンクしないといけないとか)は生じないという理解でよろしいでしょうか?
そうであれば、rostestを使ってもよいかな、と思いますが。

@k-okada
Copy link
Contributor Author

k-okada commented Aug 15, 2014

はい.ライブラリはリンクしないです.もうひとつついでにお願いとしては,buildシステムをros(でも出来るよう)にしませんでしょうか?
あんまりチャント僕自身も理解していませんが,多分,package.xml というファイルを一つ置いてもらうだけでOKなはずです.
普通のユーザは今までどおり, cmake; make; make installで使ってもらって,rosなユーザはcatkin_xxx
みたいにして使う,とすると,
https://github.com/start-jsk/openhrp3 のリポジトリをめでたく消し去って,成仏させることができます.
(あ,あと,CHANGELOG.rst というファイルも置いてもらう,という事になるかもしれません.)

http://www.ros.org/reps/rep-0136.html
http://wiki.ros.org/bloom/Tutorials/ReleaseThirdParty

2014-08-14 13:33 GMT+09:00 fkanehiro [email protected]:

そうするとrostestを使ったとしても、rosに依存するのはlaunchファイルやpythonスクリプト程度で、直接的な依存関係(ライブラリをリンクしないといけないとか)は生じないという理解でよろしいでしょうか?
そうであれば、rostestを使ってもよいかな、と思いますが。


Reply to this email directly or view it on GitHub
#2 (comment).

@fkanehiro
Copy link
Owner

はい、よいですよ。PRを出して頂ければマージします。

@k-okada
Copy link
Contributor Author

k-okada commented Feb 24, 2015

@k-okada k-okada closed this as completed Feb 24, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants