Would you mind if we used travis CI for unit + integration tests?
codylane opened this issue · 7 comments
Hello @dustymabe,
I'm about to start working on a few of issues as I promised and I wanted to see if you were open to using Travis CI for tests? I'd be happy to put this all together and get it setup. It is fairly easy to do and I have no problem with if as long as you think it's a good idea? I'm also open to other alternatives as well, just thought I would mention travis CI since most OSS projects use it.
I'm not opposed, but have a few concerns/suggestions:
- This project can be a bit hard to test because it requires VMs to properly test things.
- Does travis offer the option to test on CentOS/Fedora distributions?
- It's what I'm most comfortable with and if debugging a test failure I'd like to use a similar environment
Great question and not one that I've considered before. In theory we could use Docker images inside of Travis like so. https://docs.travis-ci.com/user/docker/. I've not gotten that complex though, I normally test my integrations in multiple OSes within my local network and only generally run my unit tests publicly.
Here's another example of what we do with vagrant-proxyconf, each item is a GH-ISSUE with specific integration tests that are automated via a rake tasks backed by Vagrant, VirtualBox, Docker and serverspec for functional testing. I generally write unit tests first, then I write the integration tests second and I won't commit to GH unless I get ALL tests to pass. But when I commit to GH, travis checks out the PR, Merge request, Release and runs only the unit tests and places a badge on the README to show the tests are passing. The only downside is that because the integrations are not publicly available it's hard to trust that they are kept up to date so, having good discipline will also be needed as well as some level of trust.
Just my $2 with different options. Let me know what you think. I'm going to hold of putting in my PRs until we decide if integration tests are something we would like to tackle or not. ;)
Yeah. If we just want to run unit tests on travis and leave the integration tests as something we do manually, that is probably the easiest to achieve. As we go through this let's keep an eye out for keeping things as simple as possible. That will make it easier to maintain over time.
No problem, and I agree with you as well as trying to use as many stdlib libraries as possible without re-inventing the wheel.
Just curious, what is the best way for us to define/communicate new features/bugs? The reason I ask is because I'm a believer in communication and keeping an open mind when it comes to writing software and the key to good software is communication. I'd be happy to setup a kanban board on GH for us?
Just confirmed actually that my current permissions won't let me create a project board. For reference here is what we do with vagrant-proxyconf. I have the collaborator perms on that repo since I'm not the owner, just a contributor.
I apologize, I've been heads down working on a couple of different projects. I hope to get to this before the weekend if over.
No need to apologize. This project is a low time commitment. If it wasn't I'd have to give it up.
Closing this request since the main point was addressed already.
Thanks @dustymabe for help thus for and for being open to listening to another persons ramblings. Talk soon.