在docker容器

时间:2017-03-26 20:52:57

标签: python django code-coverage

所以我尝试使用coverage.py工具来测量我的Django应用程序的代码覆盖率,但是,我今天取得了成功。基本上,我的计划是在运行docker容器之后让流程管理器执行.sh文件,其中包含以下两行:coverage run /path/to/manage.py test nameofappcoverage html -d coverage_html"。问题是没有创建html文件,我基本上得到关于覆盖范围的0信息。使用docker exec -it nameofcontainer bash进入docker容器并读取日志后,我发现了以下错误:

 ----------------------------------------------------------------------
 Ran 12 tests in 0.081s
 OK
 >>> Creating test database for alias 'default'...
 Destroying test database for alias 'default'...
 Traceback (most recent call last):
   File "/usr/bin/coverage", line 9, in <module> load_entry_point('coverage==4.3.4', 'console_scripts', 'coverage')()
   File "/usr/lib/python3.4/site-packages/coverage/cmdline.py", line 756, in main status = CoverageScript().command_line(argv)
   File "/usr/lib/python3.4/site-packages/coverage/cmdline.py", line 483, in command_line return self.do_run(options, args)
   File "/usr/lib/python3.4/site-packages/coverage/cmdline.py", line 641, in do_run self.coverage.save()
   File "/usr/lib/python3.4/site-packages/coverage/control.py", line 742, in save self.data_files.write(self.data, suffix=self.data_suffix)
   File "/usr/lib/python3.4/site-packages/coverage/data.py", line 673, in write data.write_file(filename)
   File "/usr/lib/python3.4/site-packages/coverage/data.py", line 460, in write_file with open(filename, 'w') as fdata:
 PermissionError: [Errno 13] Permission denied: '/.coverage'

因此,在看到/.coverage缺少权限后,我只是添加了chmod +x /path/to/.coverage,但是,这会产生0差异,但我收到了完全相同的错误。我决定再次进入容器并自己执行脚本,令我惊讶的是,它完美无缺。那么为什么我无法使用流程管理器执行.sh文件?是因为我运行第一个coverage命令时创建了/.coverage文件,甚至我添加了chmod命令我还没有真正更改文件的权限,因为它仍然不存在?

0 个答案:

没有答案