繁体   English   中英

运行nosetests时出错 - 在安装google cloudsdk的情况下使用

[英]error when running nosetests --with-gae with google cloudsdk installed

在新的云sdk下运行时,nosetests --with-gae失败。 它正在寻找dev_appserver.py,但看起来它已被重命名为old_dev_appserver.py。 我可以破解修复,但现有解决方案吗? 在互联网上看不到一个......

$ nosetests --with-gae --gae-lib-root=~/google-cloud-sdk/platform/google_appengine
Traceback (most recent call last):
  File "/Users/edahl/src/gmj/bin/nosetests", line 9, in <module>
    load_entry_point('nose==1.3.4', 'console_scripts', 'nosetests')()
  File "/Users/edahl/src/gmj/lib/python2.7/site-packages/nose/core.py", line 121, in __init__
    **extra_args)
  File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/main.py", line 94, in __init__
    self.parseArgs(argv)
  File "/Users/edahl/src/gmj/lib/python2.7/site-packages/nose/core.py", line 145, in parseArgs
    self.config.configure(argv, doc=self.usage())
  File "/Users/edahl/src/gmj/lib/python2.7/site-packages/nose/config.py", line 346, in configure
    self.plugins.configure(options, self)
  File "/Users/edahl/src/gmj/lib/python2.7/site-packages/nose/plugins/manager.py", line 284, in configure
    cfg(options, config)
  File "/Users/edahl/src/gmj/lib/python2.7/site-packages/nose/plugins/manager.py", line 99, in __call__
    return self.call(*arg, **kw)
  File "/Users/edahl/src/gmj/lib/python2.7/site-packages/nose/plugins/manager.py", line 167, in simple
    result = meth(*arg, **kw)
  File "/Users/edahl/src/gmj/lib/python2.7/site-packages/nosegae.py", line 80, in configure
    from dev_appserver import fix_sys_path
ImportError: No module named dev_appserver

这是我在google_appengine目录中看到的内容......

$ ls ~/google-cloud-sdk/platform/google_appengine/
BUGS            api_server.py       godoc           php
LICENSE         backends_conversion.py  gofmt           php_cli.py
README          bulkload_client.py  google          remote_api_shell.py
RELEASE_NOTES       bulkloader.py       google_sql.py       run_tests.py
RELEASE_NOTES.go_sdk    demos           goroot          tools
VERSION         download_appstats.py    lib         wrapper_util.py
_php_runtime.py     gen_protorpc.py     new_project_template    wrapper_util.pyc
_python_runtime.py  goapp           old_dev_appserver.py

旧的/ usr / local / google_appengine目录似乎已被弃用......但如果我使用它,我可以让事情发挥作用。

[更新]

使用old_dev_appserver这样的手动单元测试设置确实有效:

def main(sdk_path, test_path):
    sys.path.insert(0, sdk_path)
    import old_dev_appserver
    old_dev_appserver.fix_sys_path()
    suite = unittest.loader.TestLoader().discover(test_path)
    unittest.TextTestRunner(verbosity=2).run(suite)

最后这非常愚蠢......需要扩展传递给--gae-lib-root的用户路径

nosetests --with-gae --gae-lib-root=/Users/USERNAME/google-cloud-sdk/platform/google_appengine

在我的Mac上,我得到同样的错误:

  1. 应用引擎更新后
  2. 但是在我更新之前运行GoogleAppEngineLauncher应用程序之前

简单的解决方案就是启动GoogleAppEngineLauncher。 这会更新nosetests所需的sym链接。

希望这对你有用。

您可能需要将路径设置为该目录下的lib文件夹:

--gae-lib-root=~/google-cloud-sdk/platform/google_appengine/lib

但是您可能还需要设置PATH变量,因此它还包含/ bin:

export PATH=$PATH:~/google-cloud-sdk/platform/google_appengine/bin

如果这些都不适合您,请尝试添加不带沙盒的开关:

nosetests -s -v --with-gae --without-sandbox 

根据NoseGAE文档,它检查google-cloud-sdk的默认位置是/usr/local/google_appengine

google-cloud-sdk文件夹移至/usr/local/google_appengine/google-cloud-sdk/为我解决此问题。

http://farmdev.com/projects/nosegae/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM