Devlog November 2017

Writing Devlogs after so many months. Learning a new programming language is always fun. This time have started learning Ruby for a new project. With Focussed on craftsmanship principles have started learning with TDD.

Have started writing tests using Rspec a BDD for ruby.

Below are the few techniques that help us in creating reports for the tests we have written

Sample Project Structure


├── lib
│   └── shoppingcart.rb

└── spec
    ├── shopping_cart_spec.rb
    └── spec_helper.rb

Code Coverage

In order for Code coverage we need to know how our tests are written against the line coverage. In order do that with Rspec I used simplecov. Below are the configuration to make in spec_helper.rb


require 'simplecov'
SimpleCov.minimum_coverage 70

Above configuration is for setting the minimum coverage required. Need to explore how to link this with build.

SimpleCov.start do
  add_filter "/spec/"
end

This line is to ignore the specs folder.

With this if you run the tests using command rspec folder structure will become as follows. index.html gives a good coverage report with basic layout


├── coverage
│   ├── assets
│   │   └── 0.10.2
│   │       ├── application.css
│   │       ├── application.js
│   │       ├── colorbox
│   │       │   ├── border.png
│   │       │   ├── controls.png
│   │       │   ├── loading_background.png
│   │       │   └── loading.gif
│   │       ├── favicon_green.png
│   │       ├── favicon_red.png
│   │       ├── favicon_yellow.png
│   │       ├── loading.gif
│   │       ├── magnify.png
│   │       └── smoothness
│   │           └── images
│   │               ├── ui-bg_flat_0_aaaaaa_40x100.png
│   │               ├── ui-bg_flat_75_ffffff_40x100.png
│   │               ├── ui-bg_glass_55_fbf9ee_1x400.png
│   │               ├── ui-bg_glass_65_ffffff_1x400.png
│   │               ├── ui-bg_glass_75_dadada_1x400.png
│   │               ├── ui-bg_glass_75_e6e6e6_1x400.png
│   │               ├── ui-bg_glass_95_fef1ec_1x400.png
│   │               ├── ui-bg_highlight-soft_75_cccccc_1x100.png
│   │               ├── ui-icons_222222_256x240.png
│   │               ├── ui-icons_2e83ff_256x240.png
│   │               ├── ui-icons_454545_256x240.png
│   │               ├── ui-icons_888888_256x240.png
│   │               └── ui-icons_cd0a0a_256x240.png
│   └── index.html
├── lib
│   └── shoppingcart.rb
└── spec
    ├── shopping_cart_spec.rb
    └── spec_helper.rb

Unit Testing Results

For unit test results and status of tests passed or failed we can use the default rspec configurations as below. In the root of our project there will be one file name .rspec

It will have the default contents as --require spec_helper alone. We need to add the below lines to get the status of testing as html file.

--format html
--out rspec_results.html

This will create a file name rspec_results.html in our root folder which shows the test status in html.