Comments (9)
You do know that I need to get the tests to pass Travis. It is a pain to enable git to function on travis, thus the removal of several tests such as push.
Common, be respectable with other projects.
Thank you.
from gulp-git.
Sorry, I was angry. Thank you for your work.
from gulp-git.
It's alright, thanks for telling me about the issues.
from gulp-git.
Take a look at https://github.com/steida/este how Travis is enabled on git project. It's easy. Just enable per project here: https://travis-ci.org/profile, add travis file, point npm test to gulp or mocha. Done.
from gulp-git.
Yes, I have it enabled. What I was mentioning was git runs very slow on a travis box. Usually longer than a usual 2000ms mocha timeout. In order to test the git push I would need to add a git user and credentials.
As you can see I have mocha tests, only for the ones which do not require a git user: https://github.com/stevelacy/gulp-git/blob/master/test/main.js
from gulp-git.
I think I can help you. The reason why we prefer unit tests over integration tests (they are still great, but should be written after unit tests) is: Mockup boundaries.
You should not test git itself. It works, and we all know it. Instead, mock how you call it. Probably exec. How to do it? Add optional parameter into constructor or method (it is called poor man DI).
doSomethingWithGit = function(someParams, opt_exec) {
exec = exec || opt_exec;
}
With such aproach, you can mock exec/git cmd behaviour. As result, tests will be super fast and easy to write.
Hope this helps.
from gulp-git.
You need integration tests only when you are going across boundaries. http://blog.8thlight.com/uncle-bob/2014/04/30/When-tdd-does-not-work.html
from gulp-git.
Feel free to ask if something is not obvious.
from gulp-git.
@steida You don't need mocking to test that behavior (2nd error). That said, the error would most likely not occur if the source was in idomatic CoffeeScript instead of JS:
exec cmd, cwd: cwd, (err, stdout, stderr) =>
cb err if err
gutil.log stdout, stderr
@push file for file in files
cb()
Nice example.
from gulp-git.
Related Issues (20)
- Get current branch name? HOT 2
- git add is broken in Node 8 HOT 1
- git.add does not allow for specified files to add in another cwd HOT 4
- gulp-git breaks in Node 9.5.0. HOT 3
- Error creating commit on new git version HOT 20
- Error: i can't commit HOT 2
- How to use git clone with ssh HOT 2
- How to clone with a specified branch? HOT 5
- commit() will commit also unstaged files HOT 2
- Git add . all files HOT 2
- Cannot use '-a' anymore for commit HOT 4
- how can I checkout a file HOT 1
- stdout maxBuffer length exceeded (diff.js) HOT 1
- Problem with absolute path or Gulp v4
- Cherry-pick - feature request HOT 1
- finish event listener registration error
- Gulp 4 compatibility HOT 1
- Add rebase command HOT 2
- "The command line is too long." on `git.add()` HOT 1
- lodash.template critical vulnerabilities from Mend HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gulp-git.