Developers need to be able to run tests quickly or they will stop running
The biggest bane of test driven development, or whatever variant you
practice, is long boot times. Even when you just run one test a slow boot
will make it a tedious job. There are a number of ways to reduce startup
times in a Ruby on Rails project.
Load less dependencies to get a faster test suite boot time
Project dependencies need to be loaded every time you start your test suite,
less dependencies means faster startup. Keeping project dependencies to a
minimum is always a good idea, not just because of boot time.
Let's jump into an example. We're assuming you're using the following,
simplified, Gemfile for your dependencies:
gem "rails" gem "bcrypt" gem "foreman" gem "thin" gem "newrelic_rpm" gem
First we stop loading gems which aren't used in the code.
gem "rails" gem "b... (more)
Deploying code to Amazon OpsWorks using Codeship
Here, at Novo IT, we love using Amazon OpsWorks for deploying our internal
projects. With OpsWorks, we can easily segregate our development environments
in Stacks and control how each project gets built via Chef recipes. OpsWorks
binds directly with your code repository of choice. When you initiate a new
build, it will pull in the latest changes and build them for you.
One task, that is not immediately obvious how to solve, is triggering an
OpsWorks build remotely from the command line, or from a build server. This
article will expl... (more)
This is the 20th Testing Tuesday episode. Every week we will share our
insights and opinions on the software testing space. Drop by every Tuesday to
learn more! Last week we started testing node.js applications with Jasmine.
How to deploy a node.js app to Heroku
In this screencast we’ll deploy a very simple node.js web application to
Heroku continuously with the help of the Codeship.
Disclaimer: We show a lot of the Codeship in this screencast – that’s
because we use it and because we build it. There are certainly other ways to
continuously deploy node.js applications. This is how... (more)
Last week we talked about how we review code, open pull requests and use
GitHub issues to manage our development workflow.
This week I will show you every step that happens after a pull request is
merged into our master branch. We use an automated deployment pipeline for
releasing our code into production.
A deployment pipeline lays out the whole process that your code needs to go
through from your repository to production. It breaks the build into several
parts (e.g., build, test and deploy) and all the associated steps that need
to be taken. By defining a p... (more)
At Usersnap we spend a lot of time thinking about optimizing the developer
workflow. With great tech startups helping us with our tests, and Continuous
Integration, we want to add Continuous Feedback to the dev checklist.
Fortunately we don't need to stress the importance of receiving feedback from
clients, co-workers and users before, during and after your development
process. Let's move on to the how.
We have all read Eric Ries' The Lean Startup - or at least we say we did -
and its call for agile product development and validated learnin... (more)