0

チームで行っているいくつかのテスト用の自動化フレームワークを開発しています。この Pickling エラーに遭遇しました。いくつかの調査を行った後、いくつかの解決策に出会い、付属の github ページを確認しました。

私はpathosをインストールし、正しく実装したと信じていますが、まだPicklingエラーが発生しています. サンプルコードとトレースバックは次のとおりです。

import multiprocess

collect_host = 'test_host'
collect_name = 'test_collect'
username = 'user'

start_func = test_start_callback(perf_collect=collect_name,
                                 perf_user=username,
                                 perf_host=collect_host,
                                 password= password)

dpool = multiprocess.Pool(1)
args = ('', '')
worker_results = []
worker = dpool.apply_async(start_func, args)
worker_results.append(worker)
dpool.close()
dpool.join()

for result in worker_results:
        result.wait()
        r = result.get()
        assert r, 'No results returned'

test_start_callback は、引数を取らない関数を生成するファクトリ関数です。使用されていないコード セグメントを編集しました。

def test_start_callback(dim_collect_host=None, dim_collect_user=None, 
                        perf_host=None, perf_user=None, perf_collect=None, 
                        password=None, tpcc_filename=None):

    if perf_host and perf_user and perf_collect:
        def perf_test_start():
            from <internal> import PerfmonManager
            perf = PerfmonManager(host=perf_host,
                                  username=perf_user,
                                  password=password,
                                  collect_name=perf_collect)
            perf.start_collect()
    return perf_test_start

トレースバック

私が見逃しているのは、他のSOリンクで言及されていないこと、またはpathosでもサポートされていないこの関数を渡す方法です。

4

1 に答える 1