私はソケットプログラムを持っています - 2つのスクリプト、サーバーとクライアント。サーバー側では、私は多くの機能を持っています。私はこれらの機能をテストしたい。私はPythonの初心者です。 pytestと呼ばれるものが見つかりました。だから私のサーバー側のすべての機能に対して、私はこのようなことをしました。pytestは0個のアイテムを収集します
def fun(a):
// fn definition
return b
def test_fun():
assert fun(test_case) == "expected value"
私はこのサーバスクリプトをtest_server.pyと名前をつけてpytestという名前にしました。私はまた、クライアント側でpytestを輸入し、私は
、その後
py.test
py.test test_server.pyを使用して実行するとその後test_client.pyするスクリプトの名前を変更しましたtest_client.py
サーバ側では、0個のアイテムを収集しているとのことです。それは何も集めていない。私が間違っていると思っていること。私は単純なPythonコードで試した。 pytestが正常に動作しています。 pytestがソケットプログラミングで動作しないのですか、間違いをしていますか? pytestを使わないコードでも間違いはありません。私はその後、
のpython test_server.py
と、
のpython test_client.pyを行うとき、それは完全に正常に動作しているあなたは、あなたのクライアントをテストする場合
ありがとうございます。私はpy.testがtest_で始まる関数をテストケースと見なしていたが、それらの関数だけを実行しているのか分からなかった。クライアント側ではなく、サーバー側でテストする必要があるため、私はあなたが言ったようにできないかもしれません。だから、関数内にソケット接続の世話をするサーバーコードの部分を入れ、test_という名前をつけ、すべてのアイテムを収集するようにしました。 –
私はテストする必要があるサーバー側で多くの機能を持っています。関数が呼び出された後に関数が定義されていれば、代入の前に使われているというエラーが表示されます。まあ、これは期待される。しかし、使用する前に関数定義を置くと、サーバー側がハングアップして何も表示していません。私はどこが間違っているのか分かりません。誰かがソケットプログラミングでpytestがどのように使われているかを調べることができます。少なくともpytestを使って実行フローを見ることは私を助けます。 –