skater coder

angela chng – Ruby on Rails / PHP web developer & skater girl in Singapore

  • blogabout stuff
  • aboutthis website
  • contactdrop a message

These are the posts from September 2010

September 20, 2010
Posted by roadburn

dothebag.sg arrives in Singapore!

Another website for the portfolio :) And if you like your bags minimalist in design, head on down to www.dothebag.sg

No Comments

Posted Under Portfolio


Posted by roadburn

Singapore Limousines Hire and Bus Charter

Latest site launch featuring quality and economical transport services in Singapore

View the site at www.alliancetransport.com.sg

No Comments

Posted Under Portfolio

September 4, 2010
Posted by roadburn

Testing Spree with cucumber + spork + autotest + pickle + factory girl

Copy this from the spree root folder into your app

1
2
3
spree-0.11.0/features
to 
yourapp/features

Edit features/support/env.rb

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
ENV["RAILS_ENV"] ||= "cucumber"
 
require 'rubygems'
require 'spork'
 
Spork.prefork do
  require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')
 
  require 'cucumber/formatter/unicode' # Remove this line if you don't want Cucumber Unicode support
  require 'cucumber/rails/world'
  require 'cucumber/rails/active_record'
  require 'cucumber/web/tableish'
 
 
  require 'capybara/rails'
  require 'capybara/cucumber'
  require 'capybara/session'
  require 'cucumber/rails/capybara_javascript_emulation' # Lets you click links with onclick javascript handlers without using @culerity or @javascript
  # Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In
  # order to ease the transition to Capybara we set the default here. If you'd
  # prefer to use XPath just remove this line and adjust any selectors in your
  # steps to use the XPath syntax.
  Capybara.default_selector = :css
 
 
  Dir.glob(SPREE_ROOT + '/db/default/*.{yml,csv,rb}').each do |file|
    Fixtures.create_fixtures(SPREE_ROOT + '/db/default', File.basename(file, '.*'))
  end
  Dir.glob(SPREE_ROOT + '/test/fixtures/*.{yml,csv,rb}').each do |file|
    Fixtures.create_fixtures(SPREE_ROOT + '/test/fixtures', File.basename(file, '.*'))
  end
 
  require 'faker'
  require 'factory_girl'
 
  [ File.join(SPREE_ROOT, 'test', 'factories', '*.rb'),
    File.join(RAILS_ROOT, 'vendor', 'extensions', '*',
      '{test,spec}', 'factories', '*.rb')
  ].each do |path|
    Dir.glob(path).each { |factory| require factory }
  end
 
  require 'factory_girl/step_definitions'
 
  Zone.class_eval do
    def self.global
      find_by_name("GlobalZone") || Factory(:global_zone)
    end
  end
 
  Product.class_eval do
    def taxon=(taxon_name)
      taxonomy = Taxonomy.find_or_create_by_name("Category")
      taxon = Taxon.find_or_create_by_name_and_taxonomy_id(taxon_name, taxonomy)
      self.taxons << taxon
    end
  end
 
  ShippingMethod.create(:name => "UPS Ground", :zone => Zone.global, :calculator => Calculator::FlatRate.new)
 
  coupon = Coupon.create(:code => "SPREE", :description => "$5 off any order", :combine => false, :calculator => Calculator::FlatRate.new)
  coupon.calculator.update_attribute(:preferred_amount, 5)
 
end
 
Spork.each_run do
  # If you set this to false, any error raised from within your app will bubble
  # up to your step definition and out to cucumber unless you catch it somewhere
  # on the way. You can make Rails rescue errors and render error pages on a
  # per-scenario basis by tagging a scenario or feature with the @allow-rescue tag.
  #
  # If you set this to true, Rails will rescue all errors and render error
  # pages, more or less in the same way your application would behave in the
  # default production environment. It's not recommended to do this for all
  # of your scenarios, as this makes it hard to discover errors in your application.
  ActionController::Base.allow_rescue = false
 
  # If you set this to true, each scenario will run in a database transaction.
  # You can still turn off transactions on a per-scenario basis, simply tagging
  # a feature or scenario with the @no-txn tag. If you are using Capybara,
  # tagging with @culerity or @javascript will also turn transactions off.
  #
  # If you set this to false, transactions will be off for all scenarios,
  # regardless of whether you use @no-txn or not.
  #
  # Beware that turning transactions off will leave data in your database
  # after each scenario, which can lead to hard-to-debug failures in
  # subsequent scenarios. If you do this, we recommend you create a Before
  # block that will explicitly put your database in a known state.
  Cucumber::Rails::World.use_transactional_fixtures = true
 
  # How to clean your database when transactions are turned off. See
  # http://github.com/bmabey/database_cleaner for more info.
  require 'database_cleaner'
  DatabaseCleaner.strategy = :truncation
end

config/cucumber.yml

1
2
3
4
5
6
7
8
9
<%
rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
rerun_opts = rerun.to_s.strip.empty? ? "--format progress features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
std_opts = "#{rerun_opts} --format rerun --out rerun.txt --strict --tags ~@wip"
%>
default: --drb <%= std_opts %>
wip: --drb --tags @wip:3 --wip features
autotest: --drb features --guess --format 'pretty' --color
autotest-all: --drb features --guess --format 'progress' --color

config/environments/cucumber.rb

1
2
ENV['AUTOFEATURE'] = "true"
ENV['RSPEC'] = "true"

config/database.yml

1
2
cucumber:
  <<: *test

Run your tests!

1
2
$ spork cuc
$ autotest

Resources

http://groups.google.com/group/spree-user/browse_thread/thread/81b006af48d3166d

1 Comment

Posted Under Coding Tips Rails

  • CATEGORIES
    • Coding Tips
    • ExtJS 4
    • Food
    • Portfolio
    • Rails
    • Sharepoint
    • Ubuntu
    • Wordpress

  • TAGS
    activities AD ADAM ajax architecture authentication bluehost books custom application custom form date design disk partition ECTS event id eventid moss forum guid hotfix iis imap keberos list id lists masterpage moss mysite profiles Rails rails 2.0 reporting services ruby Sharepoint sharepoint 2007 site templates site usage sql server 2005 time updates vhd virtual pc visual studio webparts workflow wss

Subscribe via RSS