問題タブ [specflow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - SpecFlow の複数のわずかなバリエーションに対処する
こんにちは、SOAP と REST (xml と JSON) を介して利用できる Web サービスを開発しています。私たちの specflow 機能はほとんど同じです。
これらの機能はすべて、SOAP インターフェース、REST/Xml インターフェース、および REST/JSON インターフェースについてテストする必要があります。
cucumber では、-R を使用して機能を実行し、ステップ ファイルの場所を指示することができますが、SpecFlow では、ステップ ファイルを回避する方法がまだ見つかっていないため、同じ機能で異なるステップを実行できます。
使用するステップの実装を変更するために、各シナリオを 3 回記述する必要はありません。
そこで、2 つの質問があります: 1) まったく同じシナリオを想定している 3 つの異なるインターフェイスに対して機能を 3 回実行するにはどうすればよいですか? 2) 毎回正しいステップ ファイルを選択するにはどうすればよいですか?
(1)を解けばおそらく(2)も解けます。
visual-studio-2010 - SpecFlow - 並列テストの実行
互いに関係のない SpecFlow を使用したテストを実装しています。並列テストの実行を可能にする SpecFlow の構成オプションはありますか? ドキュメントで主張されているように、「最大5つの並列単体テスト」の実行をサポートするVS10およびMSTestランナーを使用しています。
ありがとう、max.yz
.net - Access Denied Exceptions で SpecFlow テストが失敗する
Orchard CMS を起動して実行し、Subversion リポジトリにチェックインした後、既存のテスト カバレッジ、特に SpecFlow テストを調べました。
CodeRush テスト ランナーまたは NUnit GUI (v2.5.10) からテストを実行しようとすると、67 個のテストで例外が発生します。
私は管理者としてテストを実行しようとしましたが、SpecFlow の本当の知識を知っているので、重要な何かが欠けているのではないかと思います。
nunit - Windows Server 2008 R2 上の SpecFlow + WatiN + NUnit + TeamCity
最近、完全に自動化された夜間のビルド/テスト/展開環境をセットアップする際に問題が発生しました。設定を簡単に説明します。Mercurial をソース管理システムとして、TeamCity をビルド サーバーとして使用します。現在、物事をシンプルに保つために、別のマシンに 1 つのビルド エージェントしかありません。
アイデアは次のとおりです。毎晩、TeamCity ビルドが実行されます。Mercurial リポジトリから最新のものを取得し、ビルドを実行し、単体テストを実行し、テスト サーバーにデプロイし、新しくデプロイされたテスト サーバーに対して (ビルド エージェントで) 受け入れテストを実行し、すべてが合格した場合は、ロットをステージング サーバーにデプロイします。受け入れテスト以外はすべて機能しています。これらは SpecFlow と WatiN で行われます。すべてが開発マシン (Windows 7 32 ビット) で問題なく動作します。ただし、受け入れテスト (TeamCity の NUnit) を実行しようとすると、ステップ [Browser].ContainsText(browserText) のためにランナー レポートが失敗します。それまでのすべての手順は正しく実行され、同じブラウザーでビルド エージェント (完全な管理者アクセス権を取得) で手順を複製すると、テキストが存在することがわかります。したがって、私の知る限り、テストは合格するはずです。
このスタックオーバーフロースレッドを見つけたので、ブラウザ インスタンスを維持する方法に問題があるのではないかと考えました。説明するには:「Xボタンをクリックしたとき」や「テキストXをフィールドYに入力したとき」などの一般的な手順と、「その後Xが表示される」という問題のある一連の手順があります。可能な限りテストを再利用できるようにしているので、@requires_browser シナリオ要件も一般化しました。これは次のように定義されます。
そして、共通のステップ:
ここから、テキスト ボックスにテキストを入力したり、ボタンをクリックしたりするその他の一般的な手順を定義できます。これはすべて、[管理者として] Visual Studio 2010 で実行されている開発環境で完全に機能します。
テストが終了するまで ScenarioContext を保持する必要があると考えるのは間違っていますか?
私がこれまでに試したこと:
ビルド エージェント サービスをローカル システム (SYSTEM) として実行するように構成します。これにより、説明されている問題が発生します。ThenIAmShown(string text) メソッドは常に失敗します。ローカル デスクトップとの対話が有効になっています。
ビルド エージェント サービスをネットワーク管理者 (完全な管理者権限) として実行するように構成しました。このセットアップでは、テストも実行されません。私が得る例外:
TearDown メソッドが失敗しました。WatiN.Core.Exceptions.BrowserNotFoundException : 制約に一致する IE ウィンドウが見つかりませんでした: 新しく作成された IE のインスタンスにアタッチするのを待っている間にタイムアウトになりました. 検索は '30' 秒後に期限切れになりました。TearDown : System.Collections.Generic.KeyNotFoundException : 指定されたキーがディクショナリに存在しませんでした。WatiN.Core.IE.CreateIEPartiallyInitializedInNewProcess() で WatiN.Core.IE.CreateNewIEAndGoToUri(Uri uri, IDialogHandler logonDialogHandler, Boolean createInNewProcess) ...
既にアセンブリ Interop.SHDocVw.dll および Microsoft.mshtml.dll が bin ディレクトリに追加されています (プロジェクト リファレンスの [出力にコピー])。
ビルド エージェントからの NUnit UI の実行。これにより、期待どおりに単体テストが実行されます。セキュリティに問題がある可能性があると思います。Windows Server 2008 R2 Enterprise で NUnit 2.0.5 を実行します。
誰もこの問題を抱えていましたか?
asp.net-mvc-2 - MVCモデル検証の問題を伴うSpecflow
SpecFlowを学びながら、Specflow、nunit、moqを使用してデフォルトのMVC2アプリケーション登録をテストしています。
ユーザー名とパスワードが入力されていないかどうかを確認するには、次の手順があります。
手順
検証を強制する拡張方法
次の行でパスワード欠落テストが失敗する理由がわかりません。
返されるエラーメッセージがPasswordとConfirmPasswordが一致しないことであることに気付きましたが、Missing Confirm Passwordテスト(Missing Passwordテストと同じ)を含む他のすべてのテストで正常に機能する理由がわかりません。
何か案は?
特徴
- シナリオ:ユーザー名が欠落している場合、レジスタはエラーを返す必要があります
- 与えられたユーザーはユーザー名を入力していません
- 彼が登録ボタンをクリックしたとき
次に、「ユーザー名フィールドが必要です」というエラーメッセージが表示されます。「ユーザー名」
シナリオ:パスワードが欠落している場合、レジスタはエラーを返す必要があります
- 与えられたユーザーはパスワードを入力していません
- 彼が登録ボタンをクリックしたとき
- 次に、「「パスワード」は少なくとも6文字の長さである必要があります」というエラーメッセージが表示されます。"パスワード"
UPDATE
Okは、app.configMembership.Provider
に接続文字列がなかったため、アカウントモデルのValidatePasswordLengthAttributeを初期化できなかったようです。Pembership.ProviderはメンバーシップDBに接続していますか?
接続文字列を追加しましたが、2つのエラーが返されるため、テストは50%の確率で合格します。
- パスワードが必要
- パスワードは6文字の長さである必要があります。
問題は、それらが毎回同じ順序で返されるわけではないため、テストが不安定になることです。シナリオを書き直して、これを説明するためにテストするにはどうすればよいですか?1つの「Then」メソッドを引き続き使用できますか、それとも新しいメソッドを作成する必要がありますか?
ありがとう。
database - specflow を使用した受け入れテストでのデータベースのクリーンアップ
私はtddの初心者です。Brandon Satrom のビデオを見てきました。それらのようなテスト、受け入れテストの外側のループ、単体テストの内側のループを実装しようとしています。受け入れテストはデータベースにも反対だと思っていたので、Specflow でデータベース クリーンアップの [BeginScenario/AfterScenario] イベントに関する例を見つけることを期待しています。データベース クリーンアップに使用されると言われています。しかし、私が見た例はどれもそれをしません。
受け入れテストの概念を誤解していますか? データベースもカバーしていませんか?単体テストで行ったように、そこでモック オブジェクトを使用する必要がありますか?
cucumber - きゅうりで何も変わっていないことを確認する方法は?
私がcucumber/gherkin(実際にはspecflow)でテストしようとしているビジネスシナリオは、Webフォームに一連の入力が与えられた場合、リクエストを行い、(特定の条件下で)結果が返された場合、特定のフィールドは変更されていません (他の条件下では変更されています)。例えば
データ入力画面で「frobnicator を更新しない」を選択し、フォームを送信すると結果が表示された場合、frobnicator は更新されません
「フロブニケーターが更新されていません」というステップをどのように記述しますか?
1 つのオプションは、「フォームを送信する」前に「フロブニケーターの値を覚えています」のようなステップを実行することですが、それは少しゴミです。実装の詳細の恐ろしいリークです。それはテストから気をそらすものであり、ビジネスがこれをどのように説明するかではありません. 実際、そのようなセリフは誰が見ても説明しなければなりません。
理想的には書かれているように、これをもう少しうまく実装する方法について誰かアイデアがありますか?
c# - SpecFlow機能ファイルの複数行の例
これは、答えを知っていれば明らかであり、知らなければ不可能であるという質問の1つのように思われます...
複数行の例の表をSpecFlow機能ファイルに含めるにはどうすればよいですか?
私の例は次のようになります。
前もって感謝します。
cucumber - Gherkin 言語の仕様/ガイドはどこにありますか?
複数行の引数や、まだ知らないその他すべてについてなど、Gherkin で使用可能なすべての構文/形式を見つけようとしています。
ただし、Google の検索結果を調べてみると、包括的なガイドは次の場所にあるようです。
それはかなり良いと思いました。複数行の引数などを説明していると思われるページへのリンクがありますが、代わりに 404 Not found =(.
これについてどこで読むべきかについて、誰かがより良い提案をしていますか?
編集:私は非常に多くのGoogle検索を行ったことを強調する. specflowやcuke4ninjaなどのかなり優れたサイトがいくつかありますが、Gherkin の包括的な説明はありません。誰かが Google 検索でこれに対する答えを見つけた場合は、お気軽に Google 初心者と呼んでください。改善のための提案は大歓迎です。
specflow - Specflowで生成されたコードが正しくありませんか?
私は最近、Specflowをいじり始め、彼らのWebサイトの例に基づいてテストケースを生成しました[1]。ただし、生成されたコードはコンパイルされません。たとえば、「Given a new bowling game」の行は、次のように生成されます。
ただし、ITestRunner.Given()のシグネチャは次のとおりです。
同じことがWhen()、And()、Then()にも当てはまります。また、バインディングステップの定義にもstring
パラメーターが必要であるようですが、これは文書化されていないようです。
他の誰かがこれらの同じ問題を抱えていますか?Specflow 1.6.1をダウンロードし、VS2005を使用しています。
ありがとう、
ダニエルB.
[1] http://specflow.org/specflow/workflow.aspx