2017-10-25 18 views
6

私はpytestを使用してTravis-CIの統合テストを実行するオープンソースライブラリxarrayを維持しています。スタックcondaを使用して科学的Pythonをインストールします。PyTestはModuleNotFoundErrorと未使用のプラグインの名前で失敗します

Earlier today私たちの5つのテストビルド(Python 3.5および3.6ではPython 2.7または3.4ではなく)のうち2つは、明白な理由で失敗し始めました。 pytest自体が神秘トラックバックと、失敗します。我々は仮説を使用するか、hypothesis.extra.pytestpluginをインストールしない

  1. $ py.test xarray --cov=xarray --cov-config ci/.coveragerc --cov-report term-missing --verbose $EXTRA_FLAGS 
    Traceback (most recent call last): 
        File "/home/travis/miniconda/envs/test_env/bin/py.test", line 6, in <module> 
        sys.exit(py.test.main()) 
        File "/home/travis/miniconda/envs/test_env/lib/python3.6/site-packages/_pytest/config.py", line 49, in main 
        config = _prepareconfig(args, plugins) 
        File "/home/travis/miniconda/envs/test_env/lib/python3.6/site-packages/_pytest/config.py", line 168, in _prepareconfig 
        pluginmanager=pluginmanager, args=args) 
        File "/home/travis/miniconda/envs/test_env/lib/python3.6/site-packages/_pytest/vendored_packages/pluggy.py", line 745, in __call__ 
        return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs) 
        File "/home/travis/miniconda/envs/test_env/lib/python3.6/site-packages/_pytest/vendored_packages/pluggy.py", line 339, in _hookexec 
        return self._inner_hookexec(hook, methods, kwargs) 
        File "/home/travis/miniconda/envs/test_env/lib/python3.6/site-packages/_pytest/vendored_packages/pluggy.py", line 334, in <lambda> 
        _MultiCall(methods, kwargs, hook.spec_opts).execute() 
        File "/home/travis/miniconda/envs/test_env/lib/python3.6/site-packages/_pytest/vendored_packages/pluggy.py", line 613, in execute 
        return _wrapped_call(hook_impl.function(*args), self.execute) 
        File "/home/travis/miniconda/envs/test_env/lib/python3.6/site-packages/_pytest/vendored_packages/pluggy.py", line 250, in _wrapped_call 
        wrap_controller.send(call_outcome) 
        File "/home/travis/miniconda/envs/test_env/lib/python3.6/site-packages/_pytest/helpconfig.py", line 68, in pytest_cmdline_parse 
        config = outcome.get_result() 
        File "/home/travis/miniconda/envs/test_env/lib/python3.6/site-packages/_pytest/vendored_packages/pluggy.py", line 279, in get_result 
        raise ex[1].with_traceback(ex[2]) 
        File "/home/travis/miniconda/envs/test_env/lib/python3.6/site-packages/_pytest/vendored_packages/pluggy.py", line 265, in __init__ 
        self.result = func() 
        File "/home/travis/miniconda/envs/test_env/lib/python3.6/site-packages/_pytest/vendored_packages/pluggy.py", line 614, in execute 
        res = hook_impl.function(*args) 
        File "/home/travis/miniconda/envs/test_env/lib/python3.6/site-packages/_pytest/config.py", line 957, in pytest_cmdline_parse 
        self.parse(args) 
        File "/home/travis/miniconda/envs/test_env/lib/python3.6/site-packages/_pytest/config.py", line 1121, in parse 
        self._preparse(args, addopts=addopts) 
        File "/home/travis/miniconda/envs/test_env/lib/python3.6/site-packages/_pytest/config.py", line 1084, in _preparse 
        self.pluginmanager.load_setuptools_entrypoints('pytest11') 
        File "/home/travis/miniconda/envs/test_env/lib/python3.6/site-packages/_pytest/vendored_packages/pluggy.py", line 510, in load_setuptools_entrypoints 
        plugin = ep.load() 
        File "/home/travis/miniconda/envs/test_env/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2409, in load 
        return self.resolve() 
        File "/home/travis/miniconda/envs/test_env/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2415, in resolve 
        module = __import__(self.module_name, fromlist=['__name__'], level=0) 
    ModuleNotFoundError: No module named 'hypothesis.extra.pytestplugin' 
    

    いくつかのことは、このことについて私には驚くべきものです。どこから来たのか分かりません。

  2. このエラーを引き起こすように変更されたことは何も明らかではありません。 one line doc changeの後に初めて登場しました。インストールされたPythonライブラリ(condaによってインストールされた特定のバイナリビルドを含む)はまったく同じように見えます。あなたはその上で何が起こっているのかについての手がかりや推測を持っている場合(あなたが好きな場合は、しかし、build outputsを自分でdiffすることができます。)

を、あなたの助けをいただければ幸いです!私はバグをどこにスタックするか知りません。

答えて

2

私はこれにビットを掘っ:

  • Condaフォージは3.23hypothesisのcondaバージョンをピン留めプラグイン
  • は、問題を修正するとして、それをロードしている私たちにhypothesis: 3.33.0-py36_0pytestを与えます。
  • 仮説をアンインストールする仮説をインストールする問題
  • ピップだから問題

を解決して解決し、私たちは何かが仮説のconda鍛造ビルドで間違っていたと結論することができると思います。

このためconda-forgeページ上の未解決の問題があります:

https://github.com/conda-forge/hypothesis-feedstock/issues/16

関連する問題