Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/enkessler/cql
A query language for Gherkin
https://github.com/enkessler/cql
cucumber gherkin
Last synced: 3 months ago
JSON representation
A query language for Gherkin
- Host: GitHub
- URL: https://github.com/enkessler/cql
- Owner: enkessler
- License: mit
- Created: 2012-06-12T10:28:27.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2022-07-18T00:28:52.000Z (over 2 years ago)
- Last Synced: 2024-10-18T14:59:33.765Z (3 months ago)
- Topics: cucumber, gherkin
- Language: Ruby
- Homepage:
- Size: 636 KB
- Stars: 26
- Watchers: 5
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
Awesome Lists containing this project
README
Basic stuff:
[![Gem Version](https://badge.fury.io/rb/cql.svg)](https://rubygems.org/gems/cql)
[![Project License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/mit-license.php)
[![Downloads](https://img.shields.io/gem/dt/cql.svg)](https://rubygems.org/gems/cql)User stuff:
[![Cucumber Docs](http://img.shields.io/badge/Documentation-Features-green.svg)](https://github.com/enkessler/cql/tree/master/testing/cucumber/features)
[![Yard Docs](http://img.shields.io/badge/Documentation-API-blue.svg)](https://www.rubydoc.info/gems/cql)Developer stuff:
[![Build Status](https://github.com/enkessler/cql/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/enkessler/cql/actions/workflows/ci.yml?query=branch%3Amaster)
[![Coverage Status](https://coveralls.io/repos/github/enkessler/cql/badge.svg?branch=master)](https://coveralls.io/github/enkessler/cql?branch=master)
[![Maintainability](https://api.codeclimate.com/v1/badges/a469e37db8e67c1c989b/maintainability)](https://codeclimate.com/github/enkessler/cql/maintainability)
[![Inline docs](http://inch-ci.org/github/enkessler/cql.svg?branch=master)](https://inch-ci.org/github/enkessler/cql)---
# CQL (Cucumber Query Language)
CQL is a domain specific language used for querying a Cucumber (or other Gherkin based) test suite. It is written
in Ruby and powered by the [cuke_modeler](https://github.com/enkessler/cuke_modeler) gem. The goal of CQL is to increase the ease with which
useful information can be extracted from a modeled test suite and turned into summarized data or reports.Some uses for example are:
* Build systems
* Reporting## Installation
Add this line to your application's Gemfile:
```ruby
gem 'cql'
```And then execute:
$ bundle
Or install it yourself as:
$ gem install cql
## Usage
* Create a new ruby file and require the gem
require 'cql'
* Start querying things!
The first thing that needs to be done is to create a CQL Repository. This can be done with the following line:
require 'cql'
cql_repo = CQL::Repository.new "/path-to/my/feature-files"Repositories can also be created from an existing model:
directory = CukeModeler::Directory.new("/path-to/my/feature-files")
cql_repo = CQL::Repository.new(directory)Now that you have a repository you can write a query. A simple example is given below
cql_repo.query do
select name, source_line
from features
endThis will return a list of all of the feature names and source lines in the form of a list of hashes.
[{'name' => 'Feature 1', 'source_line' => 1},
{'name' => 'Feature 2', 'source_line' => 3},
{'name' => 'Feature 3', 'source_line' => 10}]Alternatively, you can activate the extensions to the `cuke_modeler` gem and query models directly:
require 'cql'
require 'cql/model_dsl'
directory = CukeModeler::Directory.new("/path-to/my/feature-files")directory.query do
select name, source_line
from features
endFor more information on the query options, see the documentation [here](https://github.com/enkessler/cql/tree/master/testing/cucumber/features).
## Development and Contributing
See [CONTRIBUTING.md](https://github.com/enkessler/cql/blob/master/CONTRIBUTING.md)
## License
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).