switch to rake task and gh-pages hosting the readme
This commit is contained in:
parent
aa11f442bc
commit
ed7d6a9378
98
README.md
98
README.md
@ -2,102 +2,8 @@
|
|||||||
|
|
||||||
Run your specs at sonic boom speed! No pesky reload button or page rendering slowdowns!
|
Run your specs at sonic boom speed! No pesky reload button or page rendering slowdowns!
|
||||||
|
|
||||||
## Introduction
|
http://johnbintz.github.com/jasmine-headless-webkit/ has the most up-to-date information on using
|
||||||
|
this project. You can see the source of that site on the gh-pages fork.
|
||||||
This gem works with projects that have used the [Jasmine gem](https://github.com/pivotal/jasmine-gem) to
|
|
||||||
create a `jasmine.yml` file that defines what to test. The runner loads that
|
|
||||||
`jasmine.yml` file and executes the tests defined within in a Qt WebKit widget, displaying the results
|
|
||||||
to the console and setting the exit code to one of the following:
|
|
||||||
|
|
||||||
* 0 for success
|
|
||||||
* 1 for spec run failure
|
|
||||||
* 2 for spec run success, but `console.log` was called during the run
|
|
||||||
|
|
||||||
`console.log` works, too, so you can run your specs side-by-side in a browser if you're so inclined. It
|
|
||||||
serializes whatever you're passing in as as JSON string, so objects that are cyclical in nature will not
|
|
||||||
serialize. If anyone has a good solution for this, please suggest and/or fork'n'fix.
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
`gem install jasmine-headless-webkit` or use Bundler.
|
|
||||||
|
|
||||||
Installation requires Qt 4.7. See [senchalabs/examples](https://github.com/senchalabs/examples) and [my fork
|
|
||||||
of examples](https://github.com/johnbintz/examples) for more information on the QtWebKit runner.
|
|
||||||
|
|
||||||
Tested in the following environments:
|
|
||||||
|
|
||||||
* Mac OS X 10.6, with MacPorts Qt and Nokia Qt.mpkg
|
|
||||||
* Kubuntu 10.10
|
|
||||||
|
|
||||||
Let me know via a message or in the Issues section if it works on your setup and it's not listed!
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
jasmine-headless-webkit [options] [list of spec files to run]
|
|
||||||
|
|
||||||
Current supported options:
|
|
||||||
|
|
||||||
* `-c`/`--colors` enables color output
|
|
||||||
* `--no-colors` disables color output
|
|
||||||
* `--keep` preserves the temporary HTML document if an error occurs in testing
|
|
||||||
* `-j`/`--jasmine-config` sets the `jasmine.yml` file to load *(defaults to `spec/javascripts/support/jasmine.yml`)*
|
|
||||||
|
|
||||||
If provided, only the requested spec files will be executed. Otherwise, all matching specs will be run.
|
|
||||||
|
|
||||||
These options can also be placed into a `.jasmine-headless-webkit` file in your project root, or into a
|
|
||||||
`.jasmine-headless-webkit` file in your home directory. Project level options override global options.
|
|
||||||
|
|
||||||
### CoffeeScript Support
|
|
||||||
|
|
||||||
`jasmine-headless-webkit` brings in the `coffee-script` gem and compiles & injects all CoffeeScript into the
|
|
||||||
generated HTML page. All you need to do is configure your `jasmine.yml` file to look for .coffee files:
|
|
||||||
|
|
||||||
src_files:
|
|
||||||
- app/assets/javascripts/**/*.coffee
|
|
||||||
spec_files:
|
|
||||||
- **/*[sS]pec.coffee
|
|
||||||
|
|
||||||
*(This will probably make it difficult to test your code in an official Jasmine server for now. You can try
|
|
||||||
[a technique like this](https://github.com/jbaudanza/rack-asset-compiler/blob/master/examples/jasmine_config.rb) for compiling CoffeeScript when it's requested from the server
|
|
||||||
or use [this fork of jasmine-gem](https://github.com/johnbintz/jasmine-gem/tree/coffeescript-inline-support) which
|
|
||||||
is thoroughly untested.)*
|
|
||||||
|
|
||||||
You will get line numbers on compile errors, but not logic errors. This is a CoffeeScript thing, and they're working on it. :)
|
|
||||||
|
|
||||||
### JavaScript Dialogs
|
|
||||||
|
|
||||||
You can call `alert()` and `confirm()` in your code. `alert()` will print the message to the console, and
|
|
||||||
`confirm()` will always return true. There's no way right now to respond to `confirm()`, so it's best to
|
|
||||||
mock that call:
|
|
||||||
|
|
||||||
spyOn(window, 'confirm').andReturn(false);
|
|
||||||
|
|
||||||
### Autotest Integration
|
|
||||||
|
|
||||||
`jasmine-headless-webkit` can integrate with Autotest. Your `jasmine.yml` file needs to be in the default
|
|
||||||
path, and you have to be ready to use a very alpha implementation of the feature. If used with RSpec 2,
|
|
||||||
Jasmine tests run after RSpec tests.
|
|
||||||
|
|
||||||
You need to create a `.jasmine-headless-webkit` file in your project root for this integration
|
|
||||||
to work.
|
|
||||||
|
|
||||||
`jasmine-headless-webkit` provides two new hooks: `:run_jasmine` and `:ran_jasmine` for before and after the
|
|
||||||
Jasmine specs have run. This is a good place to do things like re-package all your assets using
|
|
||||||
[Jammit](http://documentcloud.github.com/jammit/):
|
|
||||||
|
|
||||||
Autotest.add_hook(:run_jasmine) do |at|
|
|
||||||
system %{jammit}
|
|
||||||
end
|
|
||||||
|
|
||||||
### Server Interaction
|
|
||||||
|
|
||||||
`jasmine-headless-webkit` works the same as if you create an HTML file, manually load the Jasmine library and
|
|
||||||
your code & tests into the page, and open that page in a browser. Because of this, there's no way to handle
|
|
||||||
server interaction with your application or with a Jasmine server. If you need to test server interaction,
|
|
||||||
do one of the following:
|
|
||||||
|
|
||||||
* Stub your server responses using [Sinon.JS](http://sinonjs.org/)
|
|
||||||
* Use [PhantomJS](http://www.phantomjs.org/) against a running copy of a Jasmine server, instead of this project
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
module Jasmine
|
module Jasmine
|
||||||
module Headless
|
module Headless
|
||||||
module Webkit
|
module Webkit
|
||||||
# Your code goes here...
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
20
lib/jasmine/headless/task.rb
Normal file
20
lib/jasmine/headless/task.rb
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
module Jasmine
|
||||||
|
module Headless
|
||||||
|
class Task
|
||||||
|
attr_accessor :colors, :keep_on_error, :jasmine_config
|
||||||
|
|
||||||
|
def initialize(name = 'jasmine:headless')
|
||||||
|
@colors = false
|
||||||
|
@keep_on_error = false
|
||||||
|
@jasmine_config = nil
|
||||||
|
|
||||||
|
yield self if block_given?
|
||||||
|
|
||||||
|
desc 'Run Jasmine specs headlessly'
|
||||||
|
task name do
|
||||||
|
system %{jasmine-headless-webkit #{@colors ? "-c" : "--no-colors"} #{@keep_on_error ? "--keep" : ""} #{@jasmine_config ? "-j #{@jasmine_config}" : ""}}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user