2016-10-06 5 views
0

私はソケットプログラムを持っています - 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を行うとき、それは完全に正常に動作しているあなたは、あなたのクライアントをテストする場合

答えて

1

実際にサーバーの応答を模擬する必要があります。クライアント用にいくつかの統合テストを実行する場合。その後でサーバーを起動します。

python test_server.py 

としてクライアントのテストを実行します。私の推測では、あなたのサーバーも起動しないように

py.test test_client.py 

は唯一、名前がTEST_から始めている機能を実行py.test pytestと一緒に。

+0

ありがとうございます。私はpy.testがtest_で始まる関数をテストケースと見なしていたが、それらの関数だけを実行しているのか分からなかった。クライアント側ではなく、サーバー側でテストする必要があるため、私はあなたが言ったようにできないかもしれません。だから、関数内にソケット接続の世話をするサーバーコードの部分を入れ、test_ という名前をつけ、すべてのアイテムを収集するようにしました。 –

+0

私はテストする必要があるサーバー側で多くの機能を持っています。関数が呼び出された後に関数が定義されていれば、代入の前に使われているというエラーが表示されます。まあ、これは期待される。しかし、使用する前に関数定義を置くと、サーバー側がハングアップして何も表示していません。私はどこが間違っているのか分かりません。誰かがソケットプログラミングでpytestがどのように使われているかを調べることができます。少なくともpytestを使って実行フローを見ることは私を助けます。 –

関連する問題