1

プロジェクトの一部を説明するために BDD 機能を使用しています。ほとんどのシナリオは、django テスト クライアントhttps://docs.djangoproject.com/en/1.10/topics/testing/tools/を使用して実装されますが、一部はセレンによってテストされています。理論的には、これらの機能の一部は両方のアプローチ (セレンとテスト クライアントの両方) でテストできますが、コーディングの観点からこれにアプローチする方法がわかりません。bdd シナリオの実装を自由に保ちたい (「セレンをテスト ツールとして使用している場合」のようなものはありません)。

実行可能な場合は各ステップの複数の定義を持ち、特定のシナリオですべてのステップが実装された実装 (またはそれ以上) を使用することを考えていました。それには、私が推測する python-behave 実装を変更する必要があります。同様の問題に直面している人はいますか?

編集:

私が見つけた最初のことは、ステージを使用し、「ステージ」の各実装を持つことです: https : //pythonhosted.org/behave/new_and_noteworthy_v1.2.5.html#test-stages各段階。解決する唯一のことは、実装(ステージ)固有の機能です。最悪のシナリオでは、ダミーのパス ステップを作成できます。

4

1 に答える 1

1

したがって、各実装(django、selenium)のステージと各機能のタグ付けを使用してこれを解決し、対応するステージとタグのペアで実行しました。元:

python mnage.py behave --tags=selenium --stage=selenium

https://pythonhosted.org/behave/new_and_noteworthy_v1.2.5.html#test-stages https://pythonhosted.org/behave/gherkin.html#tags

編集: このソリューションには大きな欠点が 1 つあります。レポートには最後の実行の結果しか含まれないため、たとえば (私が行っているように) jenkins で使用すると、すべての結果が正しく表示されません (実際に合格したときにスキップされたものとして設定されているものもあります)。ついさっき)。しかし、テストエラーが発生した場合、全体的に少なくともビルドは失敗し、それが私にとっての主なことです。

于 2016-10-26T16:03:15.030 に答える