外部ツールとインターフェイスし、robotframeworkから使用するいくつかの基本的なキーワードを公開するライブラリがあります。このライブラリはPythonパッケージとして実装されており、このパッケージのモジュール内に、複雑なロジックを実装し、より多くのキーワードを公開する拡張機能を実装したいと思います。パッケージにはテストケーススコープが与えられていますが、これがどのように機能するかは完全にはわかりません。私が考えたいくつかの方法を提案した場合、もう少し知識のある人が、私が正しい方向に進んでいる場所と、間違った木を吠えている場所を教えてくれませんか...
インスタンス変数を使用します-スコープが、pythonインタープリターがパッケージを現在のテストケースによってインポートされたものと見なすようなものである場合(つまり、これは同じパッケージの個別のインスタンスではなく、異なるテストケースで個別のパッケージとして扱われます)、初期化時に、パッケージ内の別のモジュールとの間でグローバル変数
INSTANCE
を設定し、それをインポートして使用することができます。self
INSTANCE
インスタンスディクショナリを使用する-スコープがすべてのインポートでパッケージが同じであると見なされる場合は、robot.running.contextを使用して、パッケージが持つ各コンテキストのインスタンスディクショナリにアイテムが存在するようにディクショナリキーを設定できます。インポートされました-これは、これに基づくモジュールでルックアップキーと同じコンテキスト変数を使用できることを意味します。(これの欠点は、パッケージ自体がスコープ外になるまでガベージコレクションを防ぎ、永続的にスコープ内にあることに依存することです。)
私がまだ気付いていないコンテキスト変数は、スコープ内にあるインスタンスを提供します。ドキュメントを検索するのはかなり難しいので、これを簡単にする何かが欠けている可能性があります。また、スコープ内のキーワードを呼び出すことができるものも同様に優れています。
私が考慮しなかったいくつかの優れた可能性....
だから誰かが助けることができますか?