2012-05-06 8 views
2

最近、SeleniumとQTPの作業を開始しました。私はC#を使用してプログラム的にQTPを停止するためのテストチームからの要件を満たすことが任されています。この小さな実装は、チームが適切に配置したいフレームワークの一部です。QTPの実行を停止するC#

私が間違っていることはわかりませんが、ドキュメントによれば、私がやっていることは技術的にはうまくいくはずですが、そうではありません。

私はテストステータスなどを取得することができますが、テストを中止しようとするとすべてが間違っています。 QTPは応答を停止し、手動でテストを停止することもできません。以下は、私のコードは次のとおりです。

例1

QuickTest.Application qtp = new QuickTest.Application(); 
if (qtp.Test.IsRunning) 
{ 
    MessageBox.Show("Test is running"); // works 
    qtp.Test.Stop(); // qtp halts and i can't stop execution manually also 
} 

例2

上記と同じで、私は次のステートメントを使用して、QTPに接続しよう除い:

var app = Marshal.ActivateObject("QuickTest.Application") as QuickTest.Application; 

何が間違っていますか?

+0

これまで誰も解決策を見出していませんでしたが、どちらもありませんでしたが、QTPの同じ動作が私にとって共通です。テスト(WinXP、QPT10、Webアドイン)を実行すると、停止/一時停止ボタンで停止または一時停止することはできません。私はそれを押して、QTPがハングアップし、私はプロセスを殺す必要があります。私が使用している作業は、コードフローが渡すことが分かっている部分にブレークポイント(実行時に)を入れています。ブレークポイントから、テストを一時停止または中止できます。 QTPとのインターフェイスにはC#を使用しませんが、ブレークポイントを設定またはトリガするCOMインターフェイスメソッドがありますか? – AutomatedChaos

+0

@AutomatedChaos:ご意見ありがとうございます。回避策を使用してテストを一時停止することはできますが、停止することはできません。私はこれが既知の問題であるかどうか私のチームメンバーにHPに尋ねるように頼んだ。私は検索しましたが、何も見つかりませんでした。私もc#、qtpの新機能ですので、これが期待される動作であるかどうかはわかりません。 –

+1

あなたがQTPとC#について初めて知りたいのであれば、[QTPでのイベント割り込みの作成](http://www.advancedqtp.com/wp-content/uploads/yassa/event-interrupt- in-qtp.pdf)。あなたの問題に関連しているわけではありませんが、それは素敵で教育的な読書であり、あなたの実際の問題に対する解決策を考え出すでしょう。 – AutomatedChaos

答えて

1

実行を停止するのではなく、QTPのプロセスを強制終了するのはどうですか?あなたの問題を解決しますか?