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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
#!/usr/bin/env ruby
USAGE = <<EOT
This is Mechanical-Rob - an automated web server tester for
Genenetwork.org that uses the brilliant
mechanize gem with minitest.
To use this software you need to install mechanize. Run it from
the root of the genenetwork2 source tree as, for example,
./bin/test-website http://localhost:5003/ (default)
If you are using the small deployment database you can use
./bin/test-website --skip -n
To run all tests
./bin/test-website --all
To run individual tests on localhost you can do
ruby -Itest -Itest/lib test/lib/mapping.rb --name="/Mapping/"
For more information see http://genenetwork.org/
EOT
$stderr.print USAGE
require 'optparse'
options = { database: :small, link_checker: false}
opts = OptionParser.new do |o|
o.banner = "Usage: #{File.basename($0)} [options] URL"
o.on('-d','--database', String, 'Use database (default db_webqtl_s)') do |s|
options[:database] =
case s
when 'xx'
:unknown
else
:small
end
end
o.on('--all', 'Run all tests') do
options[:all] = true
end
o.on('-l','--link-checker', 'Check for dead links') do
options[:link_checker] = true
end
o.on('--navigation', 'Check for navigation') do
options[:navigation] = true
end
o.on('--mapping', 'Check for mapping') do
options[:mapping] = true
end
o.on('--skip-broken', 'Skip tests that are known to be broken') do
options[:skip_broken] = true
end
o.separator ""
o.on_tail('-h', '--help', 'display this help and exit') do
options[:show_help] = true
end
end
opts.parse!(ARGV)
if options[:show_help]
print opts
exit 1
end
$options = options # we are using a global here
$host =
if ARGV.size>0
ARGV.shift
else
"http://localhost:5003"
end
$stderr.print "Testing <",$host,">\n"
require 'mechanize'
require 'minitest/spec'
require 'minitest/autorun'
# These are the actual testing modules
libpath = File.dirname(File.dirname(__FILE__))
$: << File.join(libpath,'test/lib')
require 'main_web_functionality'
if options[:all] or options[:mapping]
require 'mapping'
end
if options[:all] or options[:link_checker]
require 'link_checker'
end
if options[:all] or options[:navigation]
require 'navigation'
end
|