3

私は Windows phone 7.1 アプリを持っており、Expensify の WP7Test フレームワークと SpecFlow の Gherkin 機能を使用していくつかの UI テストを実装しようとしています。メイン画面が表示される前に、GPS とインターネットへのアクセスについてメッセージボックスでユーザーにプロンプ​​トを表示するため、アプリケーションが初めて実行されたときに正しく起動されるかどうかをテストするのに本当に苦労しています。最初に、このコードは「App」クラスコンストラクターに(かなり大雑把に)ありました-MainPageの「OnNavigatedTo」メソッドに移動しようとしましたが、同じ結果でした。

 Trace:->Command timed out waiting for send              
 Trace:->Command timed out waiting for send              
 Trace:->Command timed out waiting for send              
 Trace:->Command timed out waiting for send              
 Trace:->Command timed out waiting for send              
 Trace:->Command timed out waiting for send              
 Trace:->Command timed out waiting for send              
 -> error:   App is not yet alive

メッセージボックスをコメントアウトすると完全に機能しますが、実際にそれらもテストしたい-メインページはそれらのプロンプトの回答に応じてレンダリングされます!

アプリケーションを開始するために、シナリオでさまざまな手順を試しました。

Given my app is clean installed and running    /
Given my app is running within 20 seconds      /
Then my app is running                        /
4

1 に答える 1

1

テスト フレームワークは ui 要素と対話するため、ui スレッドを使用する必要があります。つまり、メッセージ ボックスが何らかの形で ui メッセージ ポンプをブロックしていると思います。

これがあなたの最初のページであるため、おそらくこのケースがここで発生しています...しかし、確認するためにいくつかのテストを行う必要があります.

簡単な回避策の 1 つは、機能に非同期メッセージ ボックス メソッドを使用することです。ただし、これには、ページの初期化機能を少し再編成する必要があります。


これが深刻な問題である場合は、github で問題とサンプル テストを記録してください。

于 2012-06-09T17:58:10.247 に答える