manamana 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.rvmrc ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env bash
2
+
3
+ ruby_string="ruby-1.9.3"
4
+ gemset_name="manamana"
5
+
6
+ if rvm list strings | grep -q "${ruby_string}" ; then
7
+
8
+ # Load or create the specified gemset
9
+ rvm use "${ruby_string}@${gemset_name}" --create
10
+
11
+ else
12
+
13
+ # Notify the user to install the desired interpreter before proceeding.
14
+ echo "${ruby_string} was not found, please run 'rvm install ${ruby_string}' and then cd back into the project directory."
15
+
16
+ fi
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in manamana.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Mark Maglana
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,150 @@
1
+ # ManaMana Framework
2
+
3
+ Organize your project's requirements and their associated test cases in a way that makes sense to your organization. Then keep track of the status of each as your project progresses.
4
+
5
+ ## Installation
6
+
7
+ Install the gem:
8
+
9
+ $ gem install manamana
10
+
11
+ Use the `mana` command to generate a new project:
12
+
13
+ $ mana create my_project
14
+
15
+ This will create a directory named `my_project` containing the following items:
16
+
17
+ * `requirements/` - Contains your project's requirements
18
+ * `test_cases/` - Contains your project's test cases
19
+ * `lib/stepdefs/` - Contains definitions for steps that are used by test cases
20
+ * `lib/helpers/` - Contains helper methods that can be used in test cases and stepdefs
21
+
22
+ ## Usage
23
+
24
+ **Step 1: Write Requirements**
25
+
26
+ Writes a requirements file using the Requirements Syntax and save it under the `requirements/` directory. For example:
27
+
28
+ ```
29
+ Create Tickets
30
+ ==============
31
+ As a member of a software development team
32
+ I want to create tickets
33
+ So that I can track the bugs in our project
34
+
35
+ * Newly created tickets have a status of 'Open'
36
+
37
+ * A <Role> <Can or Cannot Create> support tickets
38
+
39
+ Examples:
40
+ | Role | Can or Cannot Create |
41
+ |---------|----------------------|
42
+ | Manager | Can Create |
43
+ | Member | Can Create |
44
+ | Guest | Cannot Create |
45
+
46
+ Notes:
47
+ Arbitrary text that the business analyst or domain expert
48
+ thinks might help the development team understand the
49
+ problem much better. Blah blah blah.
50
+ ```
51
+
52
+ Notes about the syntax:
53
+
54
+ * Text underlined by `=` characters serve as the 'group name' for the requirements that follow it
55
+ * Text that begin with an asterisk `*` are considered requirements
56
+ * Requirements can wrap to the next line. The end of a requirement spec is marked by two newline characters.
57
+ * The keywords `Examples:` and `Notes:` are not really keywords. They're just optional arbitrary text that the writer can add for clarity. The compiler will ignore them.
58
+ * Tables may or may not have borders. In the above, the border below the header row may be safely ommitted.
59
+ * Notice that there are no word-like keywords in the above syntax making it il8n-ready at the onset.
60
+ * The requirements file can be any text file but the convention is to use the .requirements file extension
61
+
62
+ **Step 2: Write Test Cases**
63
+
64
+ Write test cases for each requirement using the Test Case Syntax and save each as a file under the `test_cases/` directory. For example:
65
+
66
+ ```
67
+ Test Case:
68
+ A (.+) can create support tickets
69
+
70
+ Variables:
71
+ * Role Name = $1
72
+ * My Username = "norm"
73
+ * My Password = "123qwe"
74
+
75
+ Setup:
76
+ * An account with username <My Username> and password <My Password> exists
77
+ * The account with username <My Username> has a role of <Role Name>
78
+ * I am logged out
79
+
80
+ Teardown:
81
+ * Delete the account with username <My Username> at exit
82
+
83
+ Script:
84
+ * Visit the Login page
85
+ * Fill in the Username field with <My Username>
86
+ * Fill in the Password field with <My Password>
87
+ * Click the Login button
88
+ * The New Ticket button should be enabled
89
+ ```
90
+
91
+ Notes:
92
+
93
+ * The test case name can be a string or a regexp pattern
94
+ * The test case file can be any text file but the convention is to use the .test_case file extension
95
+ * Organizing test cases into subfolders under the `test_cases/` directory is recommended. (e.g. `test_cases/create_tickets/`)
96
+
97
+ **Step 3: Define re-usable steps**
98
+
99
+ Writes the equivalent Ruby code for the steps used in the test cases. For example:
100
+
101
+ ```
102
+ step /^Visit the (.+) page$/i do |page_name|
103
+ # Add Ruby code here
104
+ end
105
+
106
+ step /^Fill in the (.+) field with (.+)$/i do |field_name, value|
107
+ # Add Ruby code here
108
+ end
109
+
110
+ step /^Click the (.+) button$/i do |button_name|
111
+ # Add Ruby code here
112
+ end
113
+ ```
114
+
115
+ **Step 4: Run it!**
116
+
117
+ Run `mana start` to execute the tests and validate the requirements:
118
+
119
+ ```
120
+ $ mana start
121
+ Run options: --seed 51346
122
+ # Running tests:
123
+
124
+ Create Tickets
125
+ ==============
126
+ As a member of a software development team
127
+ I want to create tickets
128
+ So that I can track the bugs in our project
129
+
130
+ * Newly created tickets have a status of 'Open' PASSED
131
+
132
+ * A <Role> <Can or Cannot Create> support tickets
133
+
134
+ Examples:
135
+ | Role | Can or Cannot Create |
136
+ |---------|----------------------|
137
+ | Manager | Can Create | PASSED
138
+ | Member | Can Create | PASSED
139
+ | Guest | Cannot Create | FAILED
140
+
141
+ Notes:
142
+ Arbitrary text that the business analyst or domain expert
143
+ thinks might help the development team understand the
144
+ problem much better. Blah blah blah.
145
+
146
+
147
+ Finished tests in 0.004842s, 1445.6836 tests/s, 826.1049 assertions/s.
148
+
149
+ 7 tests, 4 assertions, 0 failures, 0 errors, 0 skips
150
+ ```
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
data/lib/manamana.rb ADDED
@@ -0,0 +1,5 @@
1
+ require "manamana/version"
2
+
3
+ module Manamana
4
+ # Your code goes here...
5
+ end
@@ -0,0 +1,3 @@
1
+ module Manamana
2
+ VERSION = "0.0.1"
3
+ end
data/manamana.gemspec ADDED
@@ -0,0 +1,17 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/manamana/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Mark Maglana"]
6
+ gem.email = ["mmaglana@gmail.com"]
7
+ gem.description = %q{Capture project requirements better}
8
+ gem.summary = %q{Organize your project's requirements and their associated test cases in a way that makes sense to your organization. Then keep track of the status of each as your project progresses.}
9
+ gem.homepage = "https://github.com/relaxdiego/manamana"
10
+
11
+ gem.files = `git ls-files`.split($\)
12
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
+ gem.name = "manamana"
15
+ gem.require_paths = ["lib"]
16
+ gem.version = Manamana::VERSION
17
+ end
metadata ADDED
@@ -0,0 +1,56 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: manamana
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Mark Maglana
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-03-08 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Capture project requirements better
15
+ email:
16
+ - mmaglana@gmail.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - .gitignore
22
+ - .rvmrc
23
+ - Gemfile
24
+ - LICENSE
25
+ - README.md
26
+ - Rakefile
27
+ - lib/manamana.rb
28
+ - lib/manamana/version.rb
29
+ - manamana.gemspec
30
+ homepage: https://github.com/relaxdiego/manamana
31
+ licenses: []
32
+ post_install_message:
33
+ rdoc_options: []
34
+ require_paths:
35
+ - lib
36
+ required_ruby_version: !ruby/object:Gem::Requirement
37
+ none: false
38
+ requirements:
39
+ - - ! '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ required_rubygems_version: !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ requirements: []
49
+ rubyforge_project:
50
+ rubygems_version: 1.8.25
51
+ signing_key:
52
+ specification_version: 3
53
+ summary: Organize your project's requirements and their associated test cases in a
54
+ way that makes sense to your organization. Then keep track of the status of each
55
+ as your project progresses.
56
+ test_files: []