cv / crab Goto Github PK
View Code? Open in Web Editor NEWCucumber-Rally Bridge: a command-line tool to integrate between Cucumber and Rally
Cucumber-Rally Bridge: a command-line tool to integrate between Cucumber and Rally
Hold settings in .crab/config: project, credentials, default language, etc
Tests are taking way too long already!
Logo should be fairly easy ;)
"crab testcase list" / "crab testcase list -P" return all test cases from the project we are logged in, but in some moment it returns an error:
/var/lib/gems/1.8/gems/crab-0.2.8/lib/crab/story.rb:25:in formatted_id': undefined method
formatted_i_d' for nil:NilClass (NoMethodError)
from /var/lib/gems/1.8/gems/crab-0.2.8/bin/crab-testcase-list:38:in run' from /var/lib/gems/1.8/gems/crab-0.2.8/bin/crab-testcase-list:37:in
each'
from /var/lib/gems/1.8/gems/crab-0.2.8/bin/crab-testcase-list:37:in run' from /var/lib/gems/1.8/gems/crab-0.2.8/lib/crab/rally.rb:11:in
initialize'
from /var/lib/gems/1.8/gems/crab-0.2.8/bin/crab-testcase-list:30:in new' from /var/lib/gems/1.8/gems/crab-0.2.8/bin/crab-testcase-list:30:in
run'
from /var/lib/gems/1.8/gems/crab-0.2.8/bin/crab-testcase-list:45
from /usr/local/bin/crab-testcase-list:19:in `load'
from /usr/local/bin/crab-testcase-list:19
After "sudo gem install crab" on OS X Yosemite, running crab with any parameter results in:
bmogilefsky-macbp:~ bmogilefsky$ crab -h
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- builder (LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Library/Ruby/Gems/2.0.0/gems/rally_rest_api-1.1.0/lib/rally_rest_api/rest_builder.rb:5:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Library/Ruby/Gems/2.0.0/gems/rally_rest_api-1.1.0/lib/rally_rest_api/rest_object.rb:2:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Library/Ruby/Gems/2.0.0/gems/rally_rest_api-1.1.0/lib/rally_rest_api/attribute_definition.rb:1:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Library/Ruby/Gems/2.0.0/gems/rally_rest_api-1.1.0/lib/rally_rest_api.rb:1:in `block in <top (required)>'
from /Library/Ruby/Gems/2.0.0/gems/rally_rest_api-1.1.0/lib/rally_rest_api.rb:1:in `each'
from /Library/Ruby/Gems/2.0.0/gems/rally_rest_api-1.1.0/lib/rally_rest_api.rb:1:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Library/Ruby/Gems/2.0.0/gems/crab-0.2.14/lib/crab.rb:10:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Library/Ruby/Gems/2.0.0/gems/crab-0.2.14/bin/crab:3:in `<top (required)>'
from /usr/bin/crab:23:in `load'
from /usr/bin/crab:23:in `<main>'
After running "sudo gem install builder", this doesn't happen.
So I think that
s.add_dependency 'builder'
...should be added to crab.gemspec.
Same as stories, but for defects, which have some different mandatory fields -- some have been customized to particular installations of rally, so beware!
crab testcase create is not working
When I try to create a new testcase crab returns me this message
camilo@c-ubuntu:~$ crab testcase create US5266 "Testcase to be deleted"
E, [2011-10-05T18:56:56.469629 #11946] ERROR -- crab: Error: Test case name not provided.
Usage: crab testcase [options*]
Available commands:
create Create a new test case in a story
delete Delete an existing test case
find Find test cases
help Show this help text
list List test cases in a story
show Show a test case (and its steps) as a Cucumber scenario
update Update a test case (name, priority, testing method, etc)
--help, -h: Show this message
"Crab testcase list -P Critical" isn't filtering (as well as -r and -m)
Using project X, when I try use some parameter to filter like "crab testcase find -m manual" it is not working.
Return all test cases
It should return just the test cases with method = manual
The same is happening to risk and priority
:(
In the help say that is possible update the name of a test case (Update a test case (name, priority, testing method, etc), but in there's no parameters to update it:
Usage: crab testcase update [options*]
--priority, -p : Priority (one of: useful important critical (default: important)
--risk, -r : Risk (one of: low medium high) (default: medium)
--method, -m : Method (one of: automated manual) (default: manual)
--type, -t : Type (one of: acceptance functional non-functional performance regression usability) (default: acceptance)
--pre, -e : Pre-conditions (default: N/A)
--post, -o : Post-conditions (default: N/A)
--desc, -d : Description (default: N/A)
--dry, -D: Dry-run (don't change anything)
--help, -h: Show this message
So we can update Rally directly from CI builds in Hudson/Jenkins
I know that the command move is to move forward or back, but it was nice if I could pass the State after the US Number, like this:
Trace:
camilo@c-ubuntu:$ crab story move US5158 Defined$ crab story move US5158 Completed
I, [2011-10-03T19:26:09.620888 #10575] INFO -- crab: Getting credentials...
I, [2011-10-03T19:26:09.621188 #10575] INFO -- crab: Connecting to Rally as [email protected]...
I, [2011-10-03T19:26:11.177161 #10575] INFO -- crab: Looking up story with ID US5158 Defined
US5158: Bla bla bla story (defined)
camilo@c-ubuntu:
I, [2011-10-03T19:26:48.963299 #10617] INFO -- crab: Getting credentials...
I, [2011-10-03T19:26:48.963602 #10617] INFO -- crab: Connecting to Rally as [email protected]...
I, [2011-10-03T19:26:49.767937 #10617] INFO -- crab: Looking up story with ID US5158 Completed
US5158: Bla bla bla story (in_progress)
camilo@c-ubuntu:~$ crab story move US5158 Defined
I, [2011-10-03T19:27:20.031225 #10645] INFO -- crab: Getting credentials...
I, [2011-10-03T19:27:20.031541 #10645] INFO -- crab: Connecting to Rally as [email protected]...
I, [2011-10-03T19:27:20.967143 #10645] INFO -- crab: Looking up story with ID US5158 Defined
US5158: Bla bla bla story (completed)
Parses a Cucumber feature and adds or updates it (and test cases) in Rally
Encrypt password in generated ~/.crab/credentials
Showing up some div's instead of breaking lines with it
28 @critical @functional 29 Scenario: [TC9868] [LAYOUT MATÉRIA] - Ajuste na Barra de Redes Sociais "Compartilhamento" 30 Exibir barra de redes sociais <div>Exibir a quantidade de acessos por rede social</div> 31 32 33 @critical @functional 34 Scenario: [TC9869] [LAYOUT MATÉRIA] - Ajuste na Barra de Redes Sociais "Copiar link ABR-IO" 35 Exibir barra de redes sociais <div>Exibir a quantidade de acessos por rede social</div>
It's a little easier to grasp if the steps fields are arranged like so:
Pre-condition: Given
Validation: When
Post-condition: Then
Problem is, there are multiple Given/When/Then cases:
Given I am logged in
And I am broke
When I apply for a loan of 4000000
And the branch manager approves it
Then the region manager should receive an alert
And the loan should be denied
And I should see a message "How the hell did you do that?"
And there are interleaved cases:
Given I am logged in
When I go to "My Account"
Then I should see my checkings account balance
When I go to my "Savings"
Then I should see my savings account balance
When ...
Examples are probably contrived, but real cases where this is extremely useful exist...
Look for .crab like Git does with .git
Make it possible to associate defects with Features (essentially treating defects like stories)
Detect files being moved around
Detect files with different names, but referring to same story
Test case commands
Iteration and Release commands
...or offline -- much faster!
Crab is getting just the first word when we pass an string parameter to update name
camilo@c-ubuntu:$ crab story update US5163 -n Camilo Master Story$ crab story show US5163
I, [2011-10-03T19:39:56.855041 #10875] INFO -- crab: Getting credentials...
I, [2011-10-03T19:39:56.855355 #10875] INFO -- crab: Connecting to Rally as [email protected]...
I, [2011-10-03T19:39:57.530219 #10875] INFO -- crab: Looking up story with ID US5163
US5163: Camilo (grooming)
camilo@c-ubuntu:
I, [2011-10-03T19:40:29.891278 #10882] INFO -- crab: Getting credentials...
I, [2011-10-03T19:40:29.891594 #10882] INFO -- crab: Connecting to Rally as [email protected]...
I, [2011-10-03T19:40:30.531275 #10882] INFO -- crab: Looking up story with ID US5163
Feature: [US5163] Camilo
"Crab testcase list -h" displays the helper of "crab testcase find"
Yuck!
Use a global command line option like -L
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.