Abstract
GitHub has just launched Atom Editor, I am using it quite a lot and posted a blog on how to install and setup atom editor on Mac OSX. Since the Atom has grown rapidly and community is adding lots of packages to improve experience of Atom.
While working in the Behaviour Driven Development (BDD), we use various BDD tools like Cucumber (@cucumber_pro) and Behat (@BehatPHP) and we expect editor support to make our life easier. Sublime Text has been my favourite editor as of now as it supports BDD tools very well. Since Atom comes in place, it looks promising.
In this short tutorial, we will see
- Decorating Atom Editor
- Installing Cucumber and BDD related packages(Cucumber, Ruby, Bundler, TravisCI, Rake)
- Using Atom Packages in the Cucumber Project
- Video Demo
Decorating Atom
You can decorate Atom editor with UI Themes and Syntax Themes and have experimented many UI and Syntax themes and liked combination of UI theme ‘Atom Dark‘ and Syntax theme ‘Ninja-syntax“. You can install them by following commands
1 2 |
$ apm install atom-dark-ui $ apm install ninja-syntax |
You can them configure these themes from the Atom settings by pressing “cmd + ,” key from your Mac. Now My Atom is looking like this:
Now, you can setup your favourite font size and font-family from the Atom setting.
Installing BDD related Packages
You need few basic set of packages from the existing packages available on Atom’s website. Here we will see some useful packages
Git Related Packages:
Here are some useful packages required to configure with GitHub. You can install these packages from the command line. Let’s search all Git related packages and install them
1 |
$ apm search git |
This will give you list of packages related to git and you can pick some useful and install. I have installed following packages
1 2 3 4 |
$ apm install git-diff $ apm install git-difftool $ apm install language-git $ apm install github-web |
This will give us enough to config github with Atom Editor. There is nice blog post to see Git integration for the Atom.
BDD Related Packages:
Cucumber
There are some cucumber related packages available for cucumber
1 |
$ apm search cucumber |
I have installed cucumber, cucumber-runner, and cucumber steps packages.
There is some Gherkin related packages available for Atom for behat.
1 |
$ apm install behat-atom |
If you are using Capybara/Rspec you can use some snippets
1 2 3 |
$ apm install capybara-snippets $ apm install rspec $ apm install rspec-snippets |
Ruby, Bundler and Travis Related
There some nice packages related to ruby, RubyGems, Bundler and TravisCI. You can install these packages
1 2 3 |
$ apm install test-status $ apm install ruby-bundler $ apm install travis-ci-status |
These packages will be enough to get started with Cucumber project.
Using Packages in the Atom
Now that, we have all necessary packages installed for Aom. Let’s see how to use them in our Cucumber Project. I have used Demo project “Cuke-Experiement” . Clone the project and launch atom
1 2 3 |
$ git clone https://github.com/Shashikant86/Cuke_Experiment $ cd Cuke_Experiement $ atom |
Using Ruby-Bundler
We have installed Ruby-Bundler package for Atom. Let’s open ‘Gemfile’ in our project and in the fuzzy-finder (cmd+Shift+P) type “Bundler” we will see “Bundle Install” and Bundle List” commands.
Bundle Install will install bundler and ‘Bundle List’ will show all the RubyGems installed. You will watch it in the Video Demo below.
Using Cucumber-Runner
Cucumber Runner is another important package which runs Cucumber in the Atom editor. You just need to open an ‘feature’ file you want to run. Right click will give you an options
Run Feature File: This will run an entire feature file with Cucumber.
Run Cucumber at Line: This will run Cucumber for only that particular step.
Using Test-Status
Test-Status is cool package which will scan ‘Rakefile’, ‘Gruntfile in your project and run test. Rakefile will use ‘rake test’ and Gruntfile will use ‘grunt test’ . We need to add following snippet to our “./atom/config.cson” file
1 2 3 4 |
'test-status': 'Rakefile': 'rake test' 'Gruntfile.*': 'grunt spec' 'gulpfile': 'gulp test' |
Now that, in our project we got an Rakefile, from fuzzy finder type “test status” this will give an option to ‘Test Status: Run Test’
This will run ‘rake test’ and log output. While tests are running, output status will turn orange and will turn back to Green or Red as per test status.
You can also track status of TravisCI build in the status bar. It’s Green at the moment.
Video Demo
HAPPY BDD with GitHub’s 21 Century Editor !!