discourse/lib/tasks/smoke_test.rake

43 lines
1018 B
Ruby
Raw Normal View History

2013-02-21 09:07:22 +08:00
desc "run phantomjs based smoke tests on current build"
task "smoke:test" do
2013-02-26 00:42:20 +08:00
phantom_path = File.expand_path('~/phantomjs/bin/phantomjs')
2013-02-21 13:01:18 +08:00
phantom_path = nil unless File.exists?(phantom_path)
phantom_path = phantom_path || 'phantomjs'
url = ENV["URL"]
if !url
require "#{Rails.root}/config/environment"
url = Discourse.base_url
end
2013-02-26 00:42:20 +08:00
2013-02-21 13:01:18 +08:00
puts "Testing: #{url}"
2013-02-21 13:37:17 +08:00
require 'open-uri'
require 'net/http'
uri = URI(url)
request = Net::HTTP::Get.new(uri)
if ENV["AUTH_USER"] && ENV["AUTH_PASSWORD"]
request.basic_auth(ENV['AUTH_USER'], ENV['AUTH_PASSWORD'])
end
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
http.request(request)
end
if response.code != "200"
raise "TRIVIAL GET FAILED WITH #{response.code}"
2013-02-21 13:37:17 +08:00
end
2014-04-10 14:57:23 +08:00
results = ""
IO.popen("#{phantom_path} #{Rails.root}/spec/phantom_js/smoke_test.js #{url}").each do |line|
puts line
results << line
end
2013-02-21 13:01:18 +08:00
if results !~ /ALL PASSED/
raise "FAILED"
end
2013-02-21 09:07:22 +08:00
end