私のチームは現在、(。Net 3.5 WinFormsアプリケーションの)自動UIテストにTestCompleteを使用しています。ツールの切り替えを検討しています。主な理由は、C#を使用してUIテストを作成することです。(私たちの非UIテスト(ユニット、統合、システム)はすべてC#であり、私たちのチームはC#でのコードの記述と整理の経験があり、テストコードのコンパイル時チェックの利点などが好きです)
ただし、TestCompleteの非常に重要な機能の1つは、AUTの.Netオブジェクトのネイティブプロパティにアクセスする機能です。UIには、次のアクションの実行方法を決定するために、基になるデータを読み取り、少し演算を行う必要がある厄介な部分がいくつかあります。TestCompleteのオブジェクトブラウザを使用してGUIアプリに接続し、コントロール階層の調査を開始し、.Netプロパティ/フィールドの調査も開始できます。そして、自動テストで同じものにアクセスします: http ://support.smartbear.com/viewarticle/30816/
私はRanorex(C#ボックスをチェックする)を非常に簡単に調べましたが、この意味ではTestCompleteほど機能がないようです。プロパティ/フィールドタイプがシリアル化できなくなるとすぐにスタックしてnullを返すようです: http ://www.ranorex.com/blog/transfering-data-to-and-from-a-net-control
プロセスの境界を越えてオブジェクトをコピーするには、オブジェクトをシリアライズ可能にする必要がありますが、TestCompleteは何をしているのでしょうか。反射で厄介な何か?
私の質問は、C#でテストを記述できるようにしながら、このプロパティの参照をTestCompleteと同じくらい簡単にするテストフレームワークはありますか?(そしてうまくいけば、TestCompleteよりもクラッシュする可能性が少し低くなります)
Ranorexリンクは、オブジェクトを転送可能なものにマップするための独自の(テスト)コードを記述できることを示しているようですが、これは追加の作業です。また、TestCompleteのオブジェクトブラウザは、テスターがアプリの曖昧な深さを手動で探索するのに非常に便利ですが、Ranorexのスパイツールでは、シリアル化できないオブジェクトを参照することはできません。