2015-03-25 56 views
0

我有一个Javascript项目,它使用Grunt构建过程,QUnit测试,Blanket代码覆盖率和一个自定义Grunt任务,将覆盖率结果转换为LCOV文件,发送给Coveralls。一切运行在TravisCI上。Travis上的临时文件

项目:https://github.com/mistic100/jQuery-QueryBuilder
我咕噜任务:https://github.com/mistic100/grunt-qunit-blanket-lcov

那么应该发生什么,在一个PhantomJS过程,在此期间npm test运行QUnit +毯测试,覆盖率结果保存在.coverage-results/all.lcov

成功构建后,grunt coveralls将此文件发送给Coveralls。

而我的问题是在这里,任务没有找到该文件,虽然当我在我的电脑上测试它。

看到最后特拉维斯日志:https://travis-ci.org/mistic100/jQuery-QueryBuilder#L389

我能想到的唯一的事情是文件,因为某些原因,被删除一旦npm test完成。可能吗 ?


编辑 所以这无关特拉维斯但在这里我使用绝对路径,认为它是相对路径(我仍然不知道为什么它不能在Windows追加虽然)我的步兵任务

回答

0

我可以考虑的唯一的事情是,一旦npm测试完成,文件由于某种原因被删除。可能吗 ?

否,运行after_success命令时,生命周期方面的构建工件仍然存在。

gruntfile.js配置force true并定义路径 - 这里没有问题。 这应该工作。

我会建议抛出一些命令来检查Travis上的文件夹和文件。

  • - sudo ls -alh /home/travis/build/mistic100/jQuery-QueryBuilder/*
  • - sudo ls -alh /home/travis/build/mistic100/jQuery-QueryBuilder/.coverage-results/*

也许你夹和文件的创建过程中发现了一个权限问题。 但这是我唯一的猜测。

+1

https://travis-ci.org/mistic100/jQuery-QueryBuilder#L389该文件夹在这里,但不是文件。也许'fs.appendFileSync'无法创建文件,我会尝试事先触摸它。 – Mistic 2015-03-26 10:22:13

+0

所以这个问题实际上是'fs.appendFileSync',它无法访问文件,我添加了一个空的内容'grunt.file.write',并且文件保持空白。 – Mistic 2015-03-26 10:48:29