我试图运行CKAN测试并且它无法正常工作。
我的配置(本地泊坞窗设置,因此凭据显示正常)位于https://gist.github.com/lwm/cd33556fb18d9b8395209cb6233d75af。
我非常确定我的postgreSQL,Redis和Solr设置正确。
我可以看到这些测试正在传递给CKAN HEAD,所以我很难过。
这是我的测试日志:
(default)root@b13dc1f03f32:/usr/lib/ckan/default/src/ckan# nosetests --with-pylons=$CKAN_INI -x
2017-09-12 08:38:39,831 INFO [ckan.config.environment] Loading static files from public
2017-09-12 08:38:39,860 INFO [ckan.config.environment] Loading templates from /usr/lib/ckan/default/src/ckan/ckan/templates
2017-09-12 08:38:40,044 INFO [ckan.config.environment] Loading templates from /usr/lib/ckan/default/src/ckan/ckan/templates
2017-09-12 08:38:40,158 INFO [ckan.model] Database tables created
2017-09-12 08:38:40,158 INFO [ckan.websetup] Creating tables: SUCCESS
.2017-09-12 08:38:40,958 INFO [ckan.config.environment] Loading templates from /usr/lib/ckan/default/src/ckan/ckan/templates
F
======================================================================
FAIL: ckan.tests.config.test_environment.TestSiteUrlMandatory.test_missing_siteurl
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
self.test(*self.arg)
File "/usr/lib/ckan/default/src/ckan/ckan/tests/helpers.py", line 389, in wrapper
return func(*args, **kwargs)
File "/usr/lib/ckan/default/src/ckan/ckan/tests/config/test_environment.py", line 90, in test_missing_siteurl
nosetools.assert_raises(RuntimeError, environment.update_config)
AssertionError: RuntimeError not raised
----------------------------------------------------------------------
Ran 2 tests in 1.564s
FAILED (failures=1)
非常感谢任何指针!
答案 0 :(得分:1)
可以通过环境变量设置一些CKAN配置选项,例如将其作为Docker容器运行时。
这些特定测试没有考虑到这一点,只会检查站点URL是否直接在配置对象中设置,这就是为什么它们传入本地安装并在容器内失败。
为了使它们更健壮,您需要让它们忽略环境变量中的设置:
diff --git a/ckan/tests/config/test_environment.py b/ckan/tests/config/test_environment.py
index fafe701..16f1895 100644
--- a/ckan/tests/config/test_environment.py
+++ b/ckan/tests/config/test_environment.py
@@ -85,6 +85,15 @@ class TestUpdateConfig(h.FunctionalTestBase):
class TestSiteUrlMandatory(object):
+ @classmethod
+ def setup_class(cls):
+ cls._site_url_from_env_var = os.environ.pop('CKAN_SITE_URL', None)
+
+ @classmethod
+ def teardown_class(cls):
+ if cls._site_url_from_env_var:
+ os.environ['CKAN_SITE_URL'] = cls._site_url_from_env_var
+
@helpers.change_config('ckan.site_url', '')
def test_missing_siteurl(self):
nosetools.assert_raises(RuntimeError, environment.update_config)
随意提交拉取请求以帮助改进上游测试。