1

pdf を参照して Web ページにアップロードする必要がある watin test に問題があります。このテストは私のマシンでスムーズに実行され、常に pdf を見つけて [送信] をクリックし、アップロードが完了するまで 30 秒待ちます。

しかし、ビルド マシン (teamcity) でこのテストを実行しようとすると、アップロードを待機する必要がある時点でテストがハングします。問題は、テスト全体でタイムアウトを 1 分に nunit に設定したり、ページをリロードしようとしても、テストがタイムアウトしないことです。テストでは、アップロード ステップでサイト全体がフリーズしました。

この機能をテストすることは非常に重要ですが、ビルド全体をアップロードするこれらのテストはハングするため、手動で行う必要があり、それはテスト自動化のアイデアではありません。

このアップロードの問題を解決する方法を知っている人はいますか? または、少なくともこのテストをタイムアウトすることができます。

stack trace = at System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedParameters)
  at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
  at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
  at mshtml.DispHTMLBaseElement.click()
  at WatiN.Core.InternetExplorer.IEElement.ClickOnElement()
  at WatiN.Core.Element.Click()
  at WatiN.Core.FileUpload.Set(String fileName)
4

2 に答える 2

1

ここでの問題は、単体テストが、開発マシンのファイル システムやネットワークなど、あまりにも多くの外部リソースに依存していることだと思います。

テストの重要性を自問してください。別のクラスに入れることができる関連するビジネス ロジックはありますか? 次に、このクラスのテストを作成できます。基本的に必要なのは、実際にファイルをアップロードしたり、ネットワークに接続したりせずに、アップロード プロセスのすべてのロジックをテストすることです。

于 2009-02-20T12:46:29.870 に答える