問題タブ [python-behave]
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.
python - シナリオ (または必要なシナリオ) の順序を振る舞い (python) で定義する
私は自分の小さな Django アプリをテストするために振る舞いを使用しています。
user_management.feature
このシナリオも含むファイルを作成済みです。
すべて正常に動作します。
私が開発したい次の機能はファイルにありますproject_management.feature
:
テストを実行すると、behavior は機能ファイルをアルファベット順に実行するため、project_management.feature
最初に実行されます。
given
ユーザーがまだ作成されていないため、最初の でエラーが発生します。
最初のファイルのレナミンをテストし01_user_management.feature
て動作させました。
より良い解決策を知っていますか?
機能ファイルの順序を指定できる構成ファイルはありますか?
それとも、シナリオには別のシナリオを最初に実行する必要があると言えますか?
python - Multiprocessing Manager が環境変数の変更をブロックしているようです
実行中のビヘイビアを並行して処理するカスタム ランナーを使用して、ガーキン ベースのテスト スイートを実行するためにビヘイビアを使用します。
これはローカル (Windows 8.1) マシンで完全に機能し、os.environ.update を使用してサブプロセス内の環境変数を変更できます。
これは、Ubuntu 14.04 サーバーでは失敗し、実行する各テストのデータベース名と一致する環境変数を変更できません。私がやっていることのコードを取り除いたものは次のとおりです。
内部では、Flask アプリケーションのテストにデータベースを使用します。Flask は、実行時に設定された環境変数を見つけることができません。
編集:何が変わったのかわかりません。サーバーと私のマシンで同じバージョンの Python を使用しており、既知のすべての使用済みパッケージの同じバージョンを使用しています。環境変数が適切に更新されていないため、後のコードでアクセスできません。
python - 動作する環境変数を設定する方法 (Python BDD フレームワーク)?
そのため、テスト環境は、作業中のリリースに応じて動的に変化します。
例えば:
- abc リリースの場合、テスト環境の URL は feature-abc.mycompany.com になり、xyz リリースの場合、テスト環境の URL は feature-xyz.company.com になります。
- ステージングについても同じことが言えます: release-abc.mycompany.com、release-xyz.mycompany.com など。
- 本番環境は単なる静的 URL: platform.mycompany.com
そうは言っても、Python 用のビヘイビア BDD フレームワークを使用してテストを実行する URL を指定する必要があります。
具体的には、cucumber が Ruby 用に持っている同等の機能を探しています: features/support/env.rb ファイルを使用して複数の URL (qa、ステージング、プロダクションなど) を定義し、コマンドライン (ターミナル) でxyz と言います (qa = feature(the release).mycompany.com を持つ)
似たようなもの: Cucumber でさまざまな環境 (例: 開発|テスト|本番) をテストするにはどうすればよいですか?
python - 動作 (BDD) AmbiguousStep エラー
Behave BDD テストを開始すると、AmbiguousStep 例外が発生しやすいステップ定義の名前空間が存在しないことがわかりました。ここでのベストプラクティスは何ですか? テスト プロジェクトが大きくなると、これは問題になると思います。
これが私がやろうとしていることです:
機能-1:
機能-2:
foo4feature1.py:
bar4feature2.py:
私の 2 つの機能 (機能 1と機能 2 ) の両方にステップ実行アクションがあります。これらの 2 つのステップは、それぞれのシナリオにおいて、互いに異なる意味を持ちます。それらはたまたま同じ名前です (例: take action )。競合を避けるために、ステップの名前を慎重に選択できることを知っています (たとえば、 feature2の「アクションを実行する」の代わりに「f2 のアクションを実行する」を使用します)。ただし、大規模なテスト プロジェクトでは、他の全員の機能のステップ名を全員が覚えていることを保証することはできません。BDD の初心者として、この問題を処理するために従うべきベスト プラクティスを探しています。
python - ステップの実装で動作ステップをスキップする
現在のステップをスキップするようにステップ実装で動作するように指示する方法はありますか?
何かのようなもの:
ユースケースは、追加のソフトウェアがインストールされているかどうかを確認したいということです。そうでない場合は、シナリオ全体をスキップしてください。
python - 単体テスト フレームワークで Python & Behave テストを実行するには?
コンソールを使用せずにテスト (Python と Behave で記述) を実行する必要があります。私は単純な Python スクリプトを作成し、単体テスト ランナーを使用することを好みます。私はユニットテストを考えていますが、pytest とノーズ ソリューションも歓迎します:) ビヘイビアのホームページでヒントを見つけることができませんでした。