Introduction Shoulda Matchers provides Test::Unit and RSpec-compatible one-liners that test common Rails functionality. It helps you write tests that would otherwise be much longer, more complex, and error-prone. Using shoulda-matchers for testing simplifies the entire process. Let’s take a look at shoulda-matchers in action, compared to its RSpec-only equivalent. One-Liner ActiveModel Tests Below is an […]
Getting Started with BDD in Laravel
Introduction For many developers BDD is a complicated subject, and getting started with it the right way often does not come easy – especially when you need to implement it into an existing framework. This tutorial aims to help you get a BDD-powered Laravel project up and running in very little time, introducing you to […]
Video Tutorial – Continuous Integration and Deployment for Elixir
In May we had the pleasure of releasing official continuous integration and deployment support for Elixir projects on Semaphore. We wanted to get to know the Elixir community better, so we started talking to developers working with Elixir. We have had the pleasure of working with Josh Adams from Elixir Sips, who has made two […]
Introduction to Writing Acceptance Tests with Cucumber
Introduction In this article, we’re going to look at Cucumber as a tool for writing your customer acceptance tests. More specifically, we’re going to look at how a Cucumber acceptance test might look in practice. After reading this article, you should have a clearer picture of why Cucumber is a good candidate for writing your […]
Python and JRuby 9.0.0.0 Available In a Minor Platform Update
We just released a minor platform update – v1507.1. Bundler is now on version 1.10.6 which fixes the DependencyList issue from the previous version (1.10.5). JRuby 9.0.0.0 is available. Major features include support for Ruby 2.2, POSIX-friendly IO and Process and others. PhantomJS 2.0.0 is available along with a tool for switching between different versions. […]
How to Use Custom RSpec Matchers to Specify Behaviour
Introduction Test code needs to be both run by computers and read by humans. It therefore needs to be well-factored and use the domain language. At the end of this tutorial, you will have seen how you can use use RSpec‘s custom matchers to write better tests that are DRY, quick to write and easy […]
Platform update on July 21st
The upcoming platform update is scheduled for July 21st, 2015. Bundler gets an update with version 1.10.5. You can read more about the improvements and changes in Bundler’s official announcement.
How to Set Up a Clojure Environment with Ansible
Introduction In this tutorial, we will walk through the process of setting up a local environment for Clojure development using the Ansible configuration management tool. Ansible and Clojure are a perfect fit, as both place an emphasis on simplicity and building with small, focused components. While we will not cover the Clojure development process specifically, […]
Introducing Continuous Integration for Go on Semaphore
Today we’re happy to announce our next step in platform expansion with full support for continuous integration of Go projects on Semaphore. Go: programming language of the future Rob Pike described the reason behind creating Go as follows: “The goals of the Go project were to eliminate the slowness and clumsiness of software development at […]
Platform update on June 23rd
The upcoming platform update is scheduled for June 23rd, 2015. Bundler gets an update with version 1.9.9.Cassandra has been updated to version 2.1.6.
How to Use Capistrano to Deploy a Rails Application to a Puma Server
Introduction Deploying a Ruby on Rails application involves a number of steps, such as copying source code files, running database migrations, pre or post-compiling assets and restarting the web server. Our goal as developer should be to automate this procedure down to a single command we can run at any time. There are tools that […]
Applying BDD to Ruby on Rails Web Applications
Introduction Behavior-driven development (BDD) is a software development practice of working in a short feedback loop, where we consistently apply test-driven development to every new feature we are exploring and working on. For a detailed introduction to the practice of BDD, you should read our article Behavior-driven Development. This article focuses on applying these principles […]
Elixir Continuous Integration Now Available on Semaphore
It’s our pleasure to announce that, as of today, Semaphore officially supports continuous integration and deployment of Elixir applications. Elixir: Functional programming for everyone Elixir was born out of the need for better concurency and higher productivity in the rock solid Erlang virtual machine called BEAM. Deriving from the fact that it compiles to Erlang […]
Platform update on May 19th
The upcoming platform update is scheduled for May 19th, 2015. Bundler gets an update with version 1.9.7.Cassandra is now on version 2.1.5.
Platform update on April 21st
The upcoming platform update is scheduled for April 21st.
Bundler gets an update with version 1.9.3 incorporating the new Molinillo dependency resolver and the performance improvements from version 1.8.