Randomly failing tests are the hardest to debug. Here’s a system you can use to fix them and keep your test suite healthy.
Nebojša Stričević

Automatic Security Testing of Rails Applications Using Brakeman
Introduction Brakeman is a tool that scans a Ruby on Rails application for common vulnerabilities. It’s a static code analyzer that can help you find security problems before you release the application. Since you can introduce a vulnerability at any stage of you development process, it’s obvious that Brakeman should scan your application as often […]
Testing Clojure With Expectations
Introduction Clojure is shipped with clojure.test — a library with basic features for writing tests. However, there are a few alternatives that aim to make writing tests more pleasant or more suitable for BDD. Expectations by Jay Fields is one of them, described as “a minimalist’s unit testing framework” with the slogan “adding signal, removing […]
Testing Clojure Web Applications with Selenium
Selenium is a commonly used set of tools for automating browsers. It allows you to drive a browser interaction with a web page by writing code. It’s most often used to write browser-based tests for web applications. Tests can be executed in a development environment or even on a real application as part of a […]
Testing Clojure web applications with Kerodon
Clojure standard library includes a general unit testing library clojure.test. There are several other libraries created for a specific purpose in mind. One of them is Kerodon, inspired by Ruby’s Capybara. Kerodon helps you test Ring-based web applications by simulating how a user would interact with your app. The goal of Kerodon is to provide […]
Setting Up the BDD Stack on a New Rails 4 Application
Introduction This tutorial guides you through generating a new Rails 4 application with RSpec and Cucumber as testing tools. If you’d like to learn how to set up a BDD stack on a Rails 5 application, this tutorial is the best next read for you. RSpec is a testing tool often used for writing unit […]
How to write a custom Kerodon matcher
Kerodon provides a friendly API for interacting with web pages in tests. With Kerodon you write a test from the perspective of a user interacting with a web application from a browser. It provides helpers for visiting a page, clicking on a button or a link, interacting with a form and inspecting the page content. […]
How to Deploy a Compojure Application to OpenShift
Introduction OpenShift is Red Hat’s cloud computing platform as a service. It’s based on open source OpenShift Origin project. The platform officially supports a number of languages: Java, PHP, Ruby, Node.js, Python and Perl. Since the platform is open source, other languages and platforms are supported by community-maintained cartridges. A cartridge is a set of […]
Queued Builds Cancellation
Last week we introduced high priority branches. Today, we’re introducing a new feature that gives more control over the build queue – queued builds cancellation.
High Priority Branches
Semaphore features a custom build queue algorithm that was designed to make the build flow for a team as pleasant as possible.
Testing Clojure With Expectations
Clojure is shipped with clojure.test. However, there are a few alternatives that aim to make writing tests more pleasant or more suitable for BDD.
Introducing User Profiles
Recently we introduced organizations and organization profile pages with a list of projects. Today, we’re launching the first version of profile…
Upgrade your paranoia with Brakeman
Brakeman is a wonderful tool that can scan your Ruby on Rails application for common vulnerabilities. It’s a static code analyzer that can help you find…
Exploring CasperJS and Continuous Integration
All Ruby developers are probably familiar with Capybara – the tool for interacting with web pages that we all use and love. A similar thing exists in the JavaScript world – CasperJS.
Setting up Jasmine JavaScript tests for continuous integration
If you are writing JavaScript or CoffeeScript and want to practice TDD, probably the best option for you to implement automatic tests is Jasmine. There are a few nice articles to get you started with the framework (like How do I Jasmine: a tutorial and Testing Your JavaScript with Jasmine) and even a book JavaScript […]