earl-report 0.5.3 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/bin/earl-report +4 -2
- data/lib/earl_report.rb +64 -54
- data/spec/earl_report_spec.rb +102 -14
- data/spec/spec_helper.rb +14 -8
- data/spec/test-files/report-no-test.ttl +48 -0
- data/spec/test-files/results.html +11 -11
- data/spec/test-files/results.jsonld +82 -82
- data/spec/test-files/results.ttl +20 -20
- metadata +5 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 77b18a547a9e1721a2c32e83abc8230dfb5c8a4a7170874cda1b4cf41d50d4d8
|
|
4
|
+
data.tar.gz: 04654044c3dfca443518097550ef07bd68b74203ca9dfc239a49c1a62a5c7556
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 743c19a11e2b87f8819d841df0d37b9a6693b8eac15546d87e025d2c14f3464604cacc78adadc6d08103326070975334cb77e50a7da7b1824baf1babc4dbd33f
|
|
7
|
+
data.tar.gz: 23524a7e72dfd286504c422b05defa55e1ae00343a348926180d5d252a3ca041bc6a948cd929eca6e4183bdc2f8c1a0ff3b39861c34417ead1360bce7cd77525
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.6.1
|
data/bin/earl-report
CHANGED
|
@@ -15,6 +15,7 @@ OPT_ARGS = [
|
|
|
15
15
|
["--output", "-o", GetoptLong::REQUIRED_ARGUMENT,"Output report to file"],
|
|
16
16
|
["--query", GetoptLong::REQUIRED_ARGUMENT,"Query, or file containing query for extracting information from Test manifest"],
|
|
17
17
|
["--rc", GetoptLong::NO_ARGUMENT, "Write options to run-control file"],
|
|
18
|
+
["--strict", GetoptLong::NO_ARGUMENT, "Fails if any skipped result is found"],
|
|
18
19
|
["--template", GetoptLong::OPTIONAL_ARGUMENT,"Specify or return default report template"],
|
|
19
20
|
["--verbose", GetoptLong::NO_ARGUMENT, "Detail on execution"],
|
|
20
21
|
["--help", "-?", GetoptLong::NO_ARGUMENT, "This message"]
|
|
@@ -65,6 +66,7 @@ opts.each do |opt, arg|
|
|
|
65
66
|
when '--name' then options[:name] = arg
|
|
66
67
|
when '--output' then options[:io] = File.open(arg, "w")
|
|
67
68
|
when '--rc' then options[:rc] = true
|
|
69
|
+
when '--strict' then options[:strict] = true
|
|
68
70
|
when '--template' then options[:template] = (File.open(arg, "r") unless arg.empty?)
|
|
69
71
|
when '--verbose' then options[:verbose] = true
|
|
70
72
|
when '--help' then usage
|
|
@@ -94,6 +96,6 @@ if options.has_key?(:template) && options[:template].nil?
|
|
|
94
96
|
elsif ARGV.empty?
|
|
95
97
|
usage
|
|
96
98
|
else
|
|
97
|
-
earl = EarlReport.new(*ARGV, options)
|
|
98
|
-
earl.generate(options)
|
|
99
|
+
earl = EarlReport.new(*ARGV, **options)
|
|
100
|
+
earl.generate(**options)
|
|
99
101
|
end
|
data/lib/earl_report.rb
CHANGED
|
@@ -11,6 +11,7 @@ class EarlReport
|
|
|
11
11
|
autoload :VERSION, 'earl_report/version'
|
|
12
12
|
|
|
13
13
|
attr_reader :graph
|
|
14
|
+
attr_reader :verbose
|
|
14
15
|
|
|
15
16
|
# Return information about each test.
|
|
16
17
|
# Tests all have an mf:action property.
|
|
@@ -186,29 +187,37 @@ class EarlReport
|
|
|
186
187
|
|
|
187
188
|
##
|
|
188
189
|
# Load test assertions and look for referenced software and developer information
|
|
189
|
-
#
|
|
190
|
-
#
|
|
191
|
-
# @
|
|
192
|
-
#
|
|
193
|
-
#
|
|
194
|
-
#
|
|
195
|
-
#
|
|
196
|
-
#
|
|
197
|
-
#
|
|
198
|
-
#
|
|
199
|
-
#
|
|
200
|
-
#
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
190
|
+
#
|
|
191
|
+
# @param [Array<String>] files Assertions
|
|
192
|
+
# @param [String] base (nil) Base IRI for loading Manifest
|
|
193
|
+
# @param [String] bibRef ('Unknown reference')
|
|
194
|
+
# ReSpec bibliography reference for specification being tested
|
|
195
|
+
# @param [Boolean] json (false) File is in the JSON format of a report.
|
|
196
|
+
# @param [String, Array<String>] manifest (nil) Test manifest(s)
|
|
197
|
+
# @param [String] name ('Unknown') Name of specification
|
|
198
|
+
# @param [String] query (MANIFEST_QUERY)
|
|
199
|
+
# Query, or file containing query for extracting information from Test manifests
|
|
200
|
+
# @param [Boolean] strict (false) Abort on any warning
|
|
201
|
+
# @param [Boolean] verbose (false)
|
|
202
|
+
def initialize(*files,
|
|
203
|
+
base: nil,
|
|
204
|
+
bibRef: 'Unknown reference',
|
|
205
|
+
json: false,
|
|
206
|
+
manifest: nil,
|
|
207
|
+
name: 'Unknown',
|
|
208
|
+
query: MANIFEST_QUERY,
|
|
209
|
+
strict: false,
|
|
210
|
+
verbose: false,
|
|
211
|
+
**options)
|
|
212
|
+
@verbose = verbose
|
|
213
|
+
raise "Test Manifests must be specified with :manifest option" unless manifest || json
|
|
206
214
|
raise "Require at least one input file" if files.empty?
|
|
207
215
|
@files = files
|
|
208
216
|
@prefixes = {}
|
|
217
|
+
@warnings = 0
|
|
209
218
|
|
|
210
|
-
# If provided
|
|
211
|
-
if
|
|
219
|
+
# If provided json, it is used for generating all other output forms
|
|
220
|
+
if json
|
|
212
221
|
@json_hash = ::JSON.parse(File.read(files.first))
|
|
213
222
|
# Add a base_uri so relative subjects aren't dropped
|
|
214
223
|
JSON::LD::Reader.open(files.first, base_uri: "http://example.org/report") do |r|
|
|
@@ -223,25 +232,25 @@ class EarlReport
|
|
|
223
232
|
end
|
|
224
233
|
|
|
225
234
|
# Load manifests, possibly with base URI
|
|
226
|
-
status "read #{
|
|
235
|
+
status "read #{manifest.inspect}"
|
|
227
236
|
man_opts = {}
|
|
228
|
-
man_opts[:base_uri] = RDF::URI(
|
|
237
|
+
man_opts[:base_uri] = RDF::URI(base) if base
|
|
229
238
|
@graph = RDF::Graph.new
|
|
230
|
-
Array(
|
|
239
|
+
Array(manifest).each do |man|
|
|
231
240
|
g = RDF::Graph.load(man, unique_bnodes: true, **man_opts)
|
|
232
241
|
status " loaded #{g.count} triples from #{man}"
|
|
233
242
|
graph << g
|
|
234
243
|
end
|
|
235
244
|
|
|
236
245
|
# Hash test cases by URI
|
|
237
|
-
tests = SPARQL.execute(
|
|
246
|
+
tests = SPARQL.execute(query, graph)
|
|
238
247
|
.to_a
|
|
239
248
|
.inject({}) {|memo, soln| memo[soln[:uri]] = soln; memo}
|
|
240
249
|
|
|
241
250
|
if tests.empty?
|
|
242
251
|
raise "no tests found querying manifest.\n" +
|
|
243
252
|
"Results are found using the following query, this can be overridden using the --query option:\n" +
|
|
244
|
-
"#{
|
|
253
|
+
"#{query}"
|
|
245
254
|
end
|
|
246
255
|
|
|
247
256
|
# Manifests in graph
|
|
@@ -262,7 +271,7 @@ class EarlReport
|
|
|
262
271
|
status "read #{file}"
|
|
263
272
|
file_graph = RDF::Graph.load(file)
|
|
264
273
|
if file_graph.first_object(predicate: RDF::URI('http://www.w3.org/ns/earl#testSubjects'))
|
|
265
|
-
|
|
274
|
+
warn " skip #{file}, which seems to be a previous rollup earl report"
|
|
266
275
|
@files -= [file]
|
|
267
276
|
else
|
|
268
277
|
status " loaded #{file_graph.count} triples"
|
|
@@ -314,7 +323,7 @@ class EarlReport
|
|
|
314
323
|
subjects[solution[:uri]] = RDF::URI(file)
|
|
315
324
|
|
|
316
325
|
# Add TestSubject information to main graph
|
|
317
|
-
|
|
326
|
+
doapName = solution[:name].to_s if solution[:name]
|
|
318
327
|
language = solution[:language].to_s if solution[:language]
|
|
319
328
|
doapDesc = solution[:doapDesc] if solution[:doapDesc]
|
|
320
329
|
doapDesc.language ||= :en if doapDesc
|
|
@@ -322,7 +331,7 @@ class EarlReport
|
|
|
322
331
|
graph << RDF::Statement(solution[:uri], RDF.type, RDF::Vocab::DOAP.Project)
|
|
323
332
|
graph << RDF::Statement(solution[:uri], RDF.type, EARL.TestSubject)
|
|
324
333
|
graph << RDF::Statement(solution[:uri], RDF.type, EARL.Software)
|
|
325
|
-
graph << RDF::Statement(solution[:uri], RDF::Vocab::DOAP.name,
|
|
334
|
+
graph << RDF::Statement(solution[:uri], RDF::Vocab::DOAP.name, doapName)
|
|
326
335
|
graph << RDF::Statement(solution[:uri], RDF::Vocab::DOAP.developer, solution[:developer])
|
|
327
336
|
graph << RDF::Statement(solution[:uri], RDF::Vocab::DOAP.homepage, solution[:homepage]) if solution[:homepage]
|
|
328
337
|
graph << RDF::Statement(solution[:uri], RDF::Vocab::DOAP.description, doapDesc) if doapDesc
|
|
@@ -350,12 +359,12 @@ class EarlReport
|
|
|
350
359
|
subject = solution[:subject]
|
|
351
360
|
unless tests[solution[:test]]
|
|
352
361
|
assertion_stats["Skipped"] = assertion_stats["Skipped"].to_i + 1
|
|
353
|
-
|
|
362
|
+
warn "Skipping result for #{solution[:test]} for #{subject}, which is not defined in manifests"
|
|
354
363
|
next
|
|
355
364
|
end
|
|
356
365
|
unless subjects[subject]
|
|
357
366
|
assertion_stats["Missing Subject"] = assertion_stats["Missing Subject"].to_i + 1
|
|
358
|
-
|
|
367
|
+
warn "No test result subject found for #{subject}: in #{subjects.keys.join(', ')}"
|
|
359
368
|
next
|
|
360
369
|
end
|
|
361
370
|
found_solutions ||= true
|
|
@@ -378,7 +387,7 @@ class EarlReport
|
|
|
378
387
|
end
|
|
379
388
|
|
|
380
389
|
# See if subject did not report results, which may indicate a formatting error in the EARL source
|
|
381
|
-
|
|
390
|
+
warn "No results found for #{subject} using #{ASSERTION_QUERY}" unless found_solutions
|
|
382
391
|
end
|
|
383
392
|
end
|
|
384
393
|
|
|
@@ -409,8 +418,8 @@ class EarlReport
|
|
|
409
418
|
# Add report wrapper to graph
|
|
410
419
|
ttl = TURTLE_PREFIXES + %(
|
|
411
420
|
<> a earl:Software, doap:Project;
|
|
412
|
-
doap:name #{quoted(
|
|
413
|
-
dc:bibliographicCitation "#{
|
|
421
|
+
doap:name #{quoted(name)};
|
|
422
|
+
dc:bibliographicCitation "#{bibRef}";
|
|
414
423
|
earl:generatedBy <https://rubygems.org/gems/earl-report>;
|
|
415
424
|
earl:assertions #{subjects.values.map {|f| f.to_ntriples}.join(",\n ")};
|
|
416
425
|
earl:testSubjects #{subjects.keys.map {|f| f.to_ntriples}.join(",\n ")};
|
|
@@ -434,6 +443,8 @@ class EarlReport
|
|
|
434
443
|
graph << RDF::Statement.new(u, RDF.type, EARL.TestCriterion)
|
|
435
444
|
graph << RDF::Statement.new(u, RDF.type, EARL.TestCase)
|
|
436
445
|
end
|
|
446
|
+
|
|
447
|
+
raise "Warnings issued in strict mode" if strict && @warnings > 0
|
|
437
448
|
end
|
|
438
449
|
|
|
439
450
|
##
|
|
@@ -441,48 +452,47 @@ class EarlReport
|
|
|
441
452
|
#
|
|
442
453
|
# If no `io` option is provided, the output is returned as a string
|
|
443
454
|
#
|
|
455
|
+
# @param [Symbol] format (:html)
|
|
456
|
+
# @param [IO] io (nil)
|
|
457
|
+
# `IO` to output results
|
|
444
458
|
# @param [Hash{Symbol => Object}] options
|
|
445
|
-
# @
|
|
446
|
-
#
|
|
447
|
-
# Optional `IO` to output results
|
|
459
|
+
# @param [String] template
|
|
460
|
+
# HAML template for generating report
|
|
448
461
|
# @return [String] serialized graph, if `io` is nil
|
|
449
|
-
def generate(
|
|
450
|
-
options = {format: :html}.merge(options)
|
|
462
|
+
def generate(format: :html, io: nil, template: nil, **options)
|
|
451
463
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
status("generate: #{options[:format]}")
|
|
464
|
+
status("generate: #{format}")
|
|
455
465
|
##
|
|
456
466
|
# Retrieve Hashed information in JSON-LD format
|
|
457
|
-
case
|
|
467
|
+
case format
|
|
458
468
|
when :jsonld, :json
|
|
459
469
|
json = json_hash.to_json(JSON::LD::JSON_STATE)
|
|
460
470
|
io.write(json) if io
|
|
461
471
|
json
|
|
462
472
|
when :turtle, :ttl
|
|
463
473
|
if io
|
|
464
|
-
earl_turtle(
|
|
474
|
+
earl_turtle(io: io)
|
|
465
475
|
else
|
|
466
476
|
io = StringIO.new
|
|
467
|
-
earl_turtle(
|
|
477
|
+
earl_turtle(io: io)
|
|
468
478
|
io.rewind
|
|
469
479
|
io.read
|
|
470
480
|
end
|
|
471
481
|
when :html
|
|
472
|
-
|
|
473
|
-
when String then
|
|
474
|
-
when IO, StringIO then
|
|
482
|
+
haml = case template
|
|
483
|
+
when String then template
|
|
484
|
+
when IO, StringIO then template.read
|
|
475
485
|
else
|
|
476
486
|
File.read(File.expand_path('../earl_report/views/earl_report.html.haml', __FILE__))
|
|
477
487
|
end
|
|
478
488
|
|
|
479
489
|
# Generate HTML report
|
|
480
|
-
html = Haml::Engine.new(
|
|
490
|
+
html = Haml::Engine.new(haml, format: :xhtml).render(self, tests: json_hash)
|
|
481
491
|
io.write(html) if io
|
|
482
492
|
html
|
|
483
493
|
else
|
|
484
|
-
writer = RDF::Writer.for(
|
|
485
|
-
writer.dump(@graph, io,
|
|
494
|
+
writer = RDF::Writer.for(format)
|
|
495
|
+
writer.dump(@graph, io, standard_prefixes: true, **options)
|
|
486
496
|
end
|
|
487
497
|
end
|
|
488
498
|
|
|
@@ -519,12 +529,11 @@ class EarlReport
|
|
|
519
529
|
|
|
520
530
|
##
|
|
521
531
|
# Output consoloated EARL report as Turtle
|
|
522
|
-
# @param [
|
|
523
|
-
#
|
|
532
|
+
# @param [IO] io ($stdout)
|
|
533
|
+
# `IO` to output results
|
|
524
534
|
# @return [String]
|
|
525
|
-
def earl_turtle(
|
|
535
|
+
def earl_turtle(io: $stdout)
|
|
526
536
|
context = JSON::LD::Context.parse(json_hash['@context'])
|
|
527
|
-
io = options[:io]
|
|
528
537
|
io.write(TURTLE_PREFIXES + "\n")
|
|
529
538
|
|
|
530
539
|
# Write project header
|
|
@@ -628,10 +637,11 @@ class EarlReport
|
|
|
628
637
|
end
|
|
629
638
|
|
|
630
639
|
def warn(message)
|
|
640
|
+
@warnings += 1
|
|
631
641
|
$stderr.puts message
|
|
632
642
|
end
|
|
633
643
|
|
|
634
644
|
def status(message)
|
|
635
|
-
$stderr.puts message if
|
|
645
|
+
$stderr.puts message if verbose
|
|
636
646
|
end
|
|
637
647
|
end
|
data/spec/earl_report_spec.rb
CHANGED
|
@@ -6,10 +6,10 @@ describe EarlReport do
|
|
|
6
6
|
let!(:earl) {
|
|
7
7
|
EarlReport.new(
|
|
8
8
|
File.expand_path("../test-files/report-complete.ttl", __FILE__),
|
|
9
|
-
:
|
|
10
|
-
:
|
|
11
|
-
:
|
|
12
|
-
:
|
|
9
|
+
bibRef: "[[TURTLE]]",
|
|
10
|
+
name: "Turtle Test Results",
|
|
11
|
+
verbose: false,
|
|
12
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
|
13
13
|
}
|
|
14
14
|
subject {earl}
|
|
15
15
|
|
|
@@ -26,6 +26,9 @@ describe EarlReport do
|
|
|
26
26
|
let(:reportNoFoaf) {
|
|
27
27
|
RDF::Graph.new << RDF::Turtle::Reader.new(File.open File.expand_path("../test-files/report-no-foaf.ttl", __FILE__))
|
|
28
28
|
}
|
|
29
|
+
let(:reportNoTest) {
|
|
30
|
+
RDF::Graph.new << RDF::Turtle::Reader.new(File.open File.expand_path("../test-files/report-no-test.ttl", __FILE__))
|
|
31
|
+
}
|
|
29
32
|
let(:doap) {
|
|
30
33
|
RDF::Graph.new << RDF::Turtle::Reader.new(File.open File.expand_path("../test-files/doap.ttl", __FILE__))
|
|
31
34
|
}
|
|
@@ -47,9 +50,9 @@ describe EarlReport do
|
|
|
47
50
|
.and_return(reportComplete)
|
|
48
51
|
EarlReport.new(
|
|
49
52
|
File.expand_path("../test-files/report-complete.ttl", __FILE__),
|
|
50
|
-
:
|
|
51
|
-
:
|
|
52
|
-
:
|
|
53
|
+
verbose: false,
|
|
54
|
+
base: "http://example.com/base/",
|
|
55
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
|
53
56
|
end
|
|
54
57
|
end
|
|
55
58
|
|
|
@@ -66,8 +69,8 @@ describe EarlReport do
|
|
|
66
69
|
subject {
|
|
67
70
|
EarlReport.new(
|
|
68
71
|
File.expand_path("../test-files/report-complete.ttl", __FILE__),
|
|
69
|
-
:
|
|
70
|
-
:
|
|
72
|
+
verbose: false,
|
|
73
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
|
71
74
|
}
|
|
72
75
|
it "loads manifest" do
|
|
73
76
|
expect(subject.graph.subjects.to_a).to include(RDF::URI("http://example/manifest.ttl"))
|
|
@@ -85,6 +88,18 @@ describe EarlReport do
|
|
|
85
88
|
it "loads foaf" do
|
|
86
89
|
expect(subject.graph.objects.to_a).to include(RDF::Vocab::FOAF.Person)
|
|
87
90
|
end
|
|
91
|
+
|
|
92
|
+
it "does not raise an error if the strict option is used" do
|
|
93
|
+
expect do
|
|
94
|
+
expect do
|
|
95
|
+
EarlReport.new(
|
|
96
|
+
File.expand_path("../test-files/report-complete.ttl", __FILE__),
|
|
97
|
+
verbose: false,
|
|
98
|
+
strict: true,
|
|
99
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
|
100
|
+
end.not_to raise_error
|
|
101
|
+
end.not_to output.to_stderr
|
|
102
|
+
end
|
|
88
103
|
end
|
|
89
104
|
|
|
90
105
|
context "no doap report" do
|
|
@@ -103,8 +118,8 @@ describe EarlReport do
|
|
|
103
118
|
subject {
|
|
104
119
|
EarlReport.new(
|
|
105
120
|
File.expand_path("../test-files/report-no-doap.ttl", __FILE__),
|
|
106
|
-
:
|
|
107
|
-
:
|
|
121
|
+
verbose: false,
|
|
122
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
|
108
123
|
}
|
|
109
124
|
it "loads manifest" do
|
|
110
125
|
expect(subject.graph.subjects.to_a).to include(RDF::URI("http://example/manifest.ttl"))
|
|
@@ -122,6 +137,18 @@ describe EarlReport do
|
|
|
122
137
|
it "loads foaf" do
|
|
123
138
|
expect(subject.graph.objects.to_a).to include(RDF::Vocab::FOAF.Person)
|
|
124
139
|
end
|
|
140
|
+
|
|
141
|
+
it "does not raise an error if the strict option is used" do
|
|
142
|
+
expect do
|
|
143
|
+
expect do
|
|
144
|
+
EarlReport.new(
|
|
145
|
+
File.expand_path("../test-files/report-no-doap.ttl", __FILE__),
|
|
146
|
+
verbose: false,
|
|
147
|
+
strict: true,
|
|
148
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
|
149
|
+
end.not_to raise_error
|
|
150
|
+
end.not_to output.to_stderr
|
|
151
|
+
end
|
|
125
152
|
end
|
|
126
153
|
|
|
127
154
|
context "no foaf report" do
|
|
@@ -140,8 +167,8 @@ describe EarlReport do
|
|
|
140
167
|
subject {
|
|
141
168
|
EarlReport.new(
|
|
142
169
|
File.expand_path("../test-files/report-no-foaf.ttl", __FILE__),
|
|
143
|
-
:
|
|
144
|
-
:
|
|
170
|
+
verbose: false,
|
|
171
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
|
145
172
|
}
|
|
146
173
|
it "loads manifest" do
|
|
147
174
|
expect(subject.graph.subjects.to_a).to include(RDF::URI("http://example/manifest.ttl"))
|
|
@@ -159,6 +186,67 @@ describe EarlReport do
|
|
|
159
186
|
it "loads foaf" do
|
|
160
187
|
expect(subject.graph.objects.to_a).to include(RDF::Vocab::FOAF.Person)
|
|
161
188
|
end
|
|
189
|
+
|
|
190
|
+
it "does not raise an error if the strict option is used" do
|
|
191
|
+
expect do
|
|
192
|
+
expect do
|
|
193
|
+
EarlReport.new(
|
|
194
|
+
File.expand_path("../test-files/report-no-foaf.ttl", __FILE__),
|
|
195
|
+
verbose: false,
|
|
196
|
+
strict: true,
|
|
197
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
|
198
|
+
end.not_to raise_error
|
|
199
|
+
end.not_to output.to_stderr
|
|
200
|
+
end
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
context "asserts a test not in manifest" do
|
|
204
|
+
before(:each) do
|
|
205
|
+
expect(RDF::Graph).to receive(:load)
|
|
206
|
+
.with(File.expand_path("../test-files/manifest.ttl", __FILE__), {unique_bnodes: true, })
|
|
207
|
+
.and_return(manifest)
|
|
208
|
+
expect(RDF::Graph).to receive(:load)
|
|
209
|
+
.with(File.expand_path("../test-files/report-no-test.ttl", __FILE__))
|
|
210
|
+
.and_return(reportNoTest)
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
subject {
|
|
214
|
+
expect do
|
|
215
|
+
@no_test_earl = EarlReport.new(
|
|
216
|
+
File.expand_path("../test-files/report-no-test.ttl", __FILE__),
|
|
217
|
+
verbose: false,
|
|
218
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
|
219
|
+
end.to output.to_stderr
|
|
220
|
+
@no_test_earl
|
|
221
|
+
}
|
|
222
|
+
it "loads manifest" do
|
|
223
|
+
expect(subject.graph.subjects.to_a).to include(RDF::URI("http://example/manifest.ttl"))
|
|
224
|
+
expect(subject.graph.subjects.to_a).to include(RDF::URI("http://example/manifest.ttl#testeval00"))
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
it "loads report" do
|
|
228
|
+
expect(subject.graph.predicates.to_a).to include(RDF::URI("http://www.w3.org/ns/earl#generatedBy"))
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
it "loads doap" do
|
|
232
|
+
expect(subject.graph.subjects.to_a).to include(RDF::URI("https://rubygems.org/gems/rdf-turtle"))
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
it "loads foaf" do
|
|
236
|
+
expect(subject.graph.objects.to_a).to include(RDF::Vocab::FOAF.Person)
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
it "raises an error if the strict option is used" do
|
|
240
|
+
expect do
|
|
241
|
+
expect do
|
|
242
|
+
EarlReport.new(
|
|
243
|
+
File.expand_path("../test-files/report-no-test.ttl", __FILE__),
|
|
244
|
+
verbose: false,
|
|
245
|
+
strict: true,
|
|
246
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
|
247
|
+
end.to raise_error(RuntimeError)
|
|
248
|
+
end.to output.to_stderr
|
|
249
|
+
end
|
|
162
250
|
end
|
|
163
251
|
end
|
|
164
252
|
|
|
@@ -227,7 +315,7 @@ describe EarlReport do
|
|
|
227
315
|
let(:output) {
|
|
228
316
|
@output ||= begin
|
|
229
317
|
sio = StringIO.new
|
|
230
|
-
earl.send(:earl_turtle,
|
|
318
|
+
earl.send(:earl_turtle, io: sio)
|
|
231
319
|
sio.rewind
|
|
232
320
|
sio.read
|
|
233
321
|
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -4,16 +4,22 @@ $:.unshift File.dirname(__FILE__)
|
|
|
4
4
|
require "bundler/setup"
|
|
5
5
|
require 'rspec'
|
|
6
6
|
require 'rspec/its'
|
|
7
|
-
require 'simplecov'
|
|
8
|
-
require 'coveralls'
|
|
9
7
|
require 'amazing_print'
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
SimpleCov.
|
|
15
|
-
|
|
8
|
+
|
|
9
|
+
begin
|
|
10
|
+
require 'simplecov'
|
|
11
|
+
require 'coveralls'
|
|
12
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
|
|
13
|
+
SimpleCov::Formatter::HTMLFormatter,
|
|
14
|
+
Coveralls::SimpleCov::Formatter
|
|
15
|
+
])
|
|
16
|
+
SimpleCov.start do
|
|
17
|
+
add_filter "/spec/"
|
|
18
|
+
end
|
|
19
|
+
rescue LoadError => e
|
|
20
|
+
STDERR.puts "Coverage Skipped: #{e.message}"
|
|
16
21
|
end
|
|
22
|
+
|
|
17
23
|
require 'earl_report'
|
|
18
24
|
|
|
19
25
|
JSON_STATE = JSON::State.new(
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
|
2
|
+
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
|
3
|
+
@prefix dc: <http://purl.org/dc/terms/> .
|
|
4
|
+
@prefix earl: <http://www.w3.org/ns/earl#> .
|
|
5
|
+
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
|
|
6
|
+
@prefix doap: <http://usefulinc.com/ns/doap#> .
|
|
7
|
+
@prefix ex: <http://example.org/> .
|
|
8
|
+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
|
9
|
+
|
|
10
|
+
<https://rubygems.org/gems/rdf-turtle> a doap:Project, earl:TestSubject, earl:Software ;
|
|
11
|
+
doap:name "RDF::Turtle" ;
|
|
12
|
+
doap:homepage <http://ruby-rdf.github.com/rdf-turtle> ;
|
|
13
|
+
doap:license <http://creativecommons.org/publicdomain/zero/1.0/> ;
|
|
14
|
+
doap:shortdesc "Turtle reader/writer for Ruby."@en ;
|
|
15
|
+
doap:description "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."@en ;
|
|
16
|
+
doap:created "2011-08-29"^^xsd:date;
|
|
17
|
+
doap:programming-language "Ruby" ;
|
|
18
|
+
doap:implements <http://www.w3.org/TR/turtle/> ;
|
|
19
|
+
doap:category <http://dbpedia.org/resource/Resource_Description_Framework>,
|
|
20
|
+
<http://dbpedia.org/resource/Ruby_(programming_language)> ;
|
|
21
|
+
doap:download-page <https://rubygems.org/gems/rdf-turtle> ;
|
|
22
|
+
doap:mailing-list <http://lists.w3.org/Archives/Public/public-rdf-ruby/> ;
|
|
23
|
+
doap:bug-database <https://github.com/ruby-rdf/rdf-turtle/issues> ;
|
|
24
|
+
doap:blog <https://greggkellogg.net/> ;
|
|
25
|
+
doap:developer <https://greggkellogg.net/foaf#me> ;
|
|
26
|
+
doap:maintainer <https://greggkellogg.net/foaf#me> ;
|
|
27
|
+
doap:documenter <https://greggkellogg.net/foaf#me> ;
|
|
28
|
+
foaf:maker <https://greggkellogg.net/foaf#me> ;
|
|
29
|
+
dc:title "RDF::Turtle" ;
|
|
30
|
+
dc:description "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."@en ;
|
|
31
|
+
dc:date "2011-08-29"^^xsd:date;
|
|
32
|
+
dc:creator <https://greggkellogg.net/foaf#me>;
|
|
33
|
+
dc:isPartOf <https://rubygems.org/gems/rdf> .
|
|
34
|
+
|
|
35
|
+
<https://greggkellogg.net/foaf#me> a foaf:Person, earl:Assertor;
|
|
36
|
+
foaf:name "Gregg Kellogg";
|
|
37
|
+
foaf:title "Implementor";
|
|
38
|
+
foaf:homepage <https://greggkellogg.net/> .
|
|
39
|
+
|
|
40
|
+
[ a earl:Assertion;
|
|
41
|
+
earl:assertedBy <https://greggkellogg.net/foaf#me>;
|
|
42
|
+
earl:subject <https://rubygems.org/gems/rdf-turtle>;
|
|
43
|
+
earl:test <http://example/manifest.ttl#notest>;
|
|
44
|
+
earl:result [
|
|
45
|
+
a earl:TestResult;
|
|
46
|
+
earl:outcome earl:passed;
|
|
47
|
+
dc:date "2012-11-06T19:23:29-08:00"^^xsd:dateTime];
|
|
48
|
+
earl:mode earl:automatic ] .
|
|
@@ -73,8 +73,8 @@ Implementation Report
|
|
|
73
73
|
<h2 id='w3c-document-28-october-2015'>
|
|
74
74
|
<abbr title='World Wide Web Consortium'>W3C</abbr>
|
|
75
75
|
Document
|
|
76
|
-
<time class='dt-published' datetime='2021-03-
|
|
77
|
-
|
|
76
|
+
<time class='dt-published' datetime='2021-03-19' property='dc:issued'>
|
|
77
|
+
19 March 2021
|
|
78
78
|
</time>
|
|
79
79
|
</h2>
|
|
80
80
|
<dl>
|
|
@@ -245,7 +245,7 @@ Test
|
|
|
245
245
|
<a href='#subj_0'>RDF::Turtle</a>
|
|
246
246
|
</th>
|
|
247
247
|
</tr>
|
|
248
|
-
<tr inlist='inlist' rel='mf:entries' resource='http://example/manifest.ttl#testeval00' typeof='http://www.w3.org/ns/rdftest#TestTurtleEval TestCriterion
|
|
248
|
+
<tr inlist='inlist' rel='mf:entries' resource='http://example/manifest.ttl#testeval00' typeof='http://www.w3.org/ns/rdftest#TestTurtleEval TestCase TestCriterion'>
|
|
249
249
|
<td>
|
|
250
250
|
<a href='#test_1fdd82ac4caf30510cabfdb0a5987ddd'>subm-test-00</a>
|
|
251
251
|
</td>
|
|
@@ -261,9 +261,9 @@ PASS
|
|
|
261
261
|
</span>
|
|
262
262
|
</td>
|
|
263
263
|
</tr>
|
|
264
|
-
<tr inlist='inlist' rel='mf:entries' resource='_:
|
|
264
|
+
<tr inlist='inlist' rel='mf:entries' resource='_:b3' typeof='http://www.w3.org/ns/rdftest#TestTurtleEval TestCase TestCriterion'>
|
|
265
265
|
<td>
|
|
266
|
-
<a href='#
|
|
266
|
+
<a href='#test_14698d4bb89cdb1ecd9215e2a55d29c6'>subm-test-01</a>
|
|
267
267
|
</td>
|
|
268
268
|
<td class='UNTESTED' property='earl:assertions' typeof='Assertion'>
|
|
269
269
|
<link href='https://rubygems.org/gems/rdf-turtle' property='earl:subject' />
|
|
@@ -300,7 +300,7 @@ This report was tested using the following test subjects:
|
|
|
300
300
|
<span about='https://rubygems.org/gems/rdf-turtle' property='doap:name'>RDF::Turtle</span>
|
|
301
301
|
</a>
|
|
302
302
|
</dt>
|
|
303
|
-
<dd property='earl:testSubjects' resource='https://rubygems.org/gems/rdf-turtle' typeof='doap:Project Software
|
|
303
|
+
<dd property='earl:testSubjects' resource='https://rubygems.org/gems/rdf-turtle' typeof='doap:Project TestSubject Software'>
|
|
304
304
|
<dl>
|
|
305
305
|
<dt>Description</dt>
|
|
306
306
|
<dd lang='en' property='doap:description'>RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.</dd>
|
|
@@ -376,11 +376,11 @@ Test
|
|
|
376
376
|
<pre class='example actionDoc' property='mf:action' resource='http://example/test-00.ttl' title='subm-test-00 Input'>http://example/test-00.ttl not loaded</pre>
|
|
377
377
|
<pre class='example resultDoc' property='mf:result' resource='http://example/test-00.out' title='subm-test-00 Result'>http://example/test-00.out not loaded</pre>
|
|
378
378
|
</dd>
|
|
379
|
-
<dt id='
|
|
379
|
+
<dt id='test_14698d4bb89cdb1ecd9215e2a55d29c6' resource='_:b3'>
|
|
380
380
|
Test
|
|
381
381
|
<span property='dc:title mf:name'>subm-test-01</span>
|
|
382
382
|
</dt>
|
|
383
|
-
<dd resource='_:
|
|
383
|
+
<dd resource='_:b3'>
|
|
384
384
|
<p property='dc:description rdfs:comment'></p>
|
|
385
385
|
<pre class='example actionDoc' property='mf:action' resource='http://example/test-01.ttl' title='subm-test-01 Input'>http://example/test-01.ttl not loaded</pre>
|
|
386
386
|
<pre class='example resultDoc' property='mf:result' resource='http://example/test-01.out' title='subm-test-01 Result'>http://example/test-01.out not loaded</pre>
|
|
@@ -399,9 +399,9 @@ This report generated by
|
|
|
399
399
|
<meta content='Earl Report summary generator' property='doap:shortdesc' />
|
|
400
400
|
<meta content='EarlReport generates HTML+RDFa rollups of multiple EARL reports' property='doap:description' />
|
|
401
401
|
version
|
|
402
|
-
<span property='doap:release' resource='https://github.com/gkellogg/earl-report/tree/0.
|
|
403
|
-
<span property='doap:revision'>0.
|
|
404
|
-
<meta content='earl-report-0.
|
|
402
|
+
<span property='doap:release' resource='https://github.com/gkellogg/earl-report/tree/0.6.0' typeof='doap:Version'>
|
|
403
|
+
<span property='doap:revision'>0.6.0</span>
|
|
404
|
+
<meta content='earl-report-0.6.0' property='doap:name' />
|
|
405
405
|
</span>
|
|
406
406
|
an
|
|
407
407
|
<a href='http://unlicense.org' property='doap:license'>Unlicensed</a>
|
|
@@ -107,74 +107,9 @@
|
|
|
107
107
|
"doap:Project",
|
|
108
108
|
"Software"
|
|
109
109
|
],
|
|
110
|
-
"testSubjects": [
|
|
111
|
-
{
|
|
112
|
-
"@id": "https://rubygems.org/gems/rdf-turtle",
|
|
113
|
-
"@type": [
|
|
114
|
-
"doap:Project",
|
|
115
|
-
"Software",
|
|
116
|
-
"TestSubject"
|
|
117
|
-
],
|
|
118
|
-
"language": "Ruby",
|
|
119
|
-
"doapDesc": "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.",
|
|
120
|
-
"release": {
|
|
121
|
-
"@id": "_:b3",
|
|
122
|
-
"revision": "unknown"
|
|
123
|
-
},
|
|
124
|
-
"name": "RDF::Turtle",
|
|
125
|
-
"developer": [
|
|
126
|
-
{
|
|
127
|
-
"@id": "https://greggkellogg.net/foaf#me",
|
|
128
|
-
"@type": [
|
|
129
|
-
"foaf:Person",
|
|
130
|
-
"Assertor"
|
|
131
|
-
],
|
|
132
|
-
"foaf:name": "Gregg Kellogg",
|
|
133
|
-
"foaf:homepage": "https://greggkellogg.net/"
|
|
134
|
-
}
|
|
135
|
-
],
|
|
136
|
-
"homepage": "http://ruby-rdf.github.com/rdf-turtle"
|
|
137
|
-
}
|
|
138
|
-
],
|
|
139
|
-
"bibRef": "[[TURTLE]]",
|
|
140
110
|
"assertions": [
|
|
141
111
|
"/Users/gregg/Projects/earl-report/spec/test-files/report-complete.ttl"
|
|
142
112
|
],
|
|
143
|
-
"generatedBy": {
|
|
144
|
-
"@id": "https://rubygems.org/gems/earl-report",
|
|
145
|
-
"@type": [
|
|
146
|
-
"doap:Project",
|
|
147
|
-
"Software"
|
|
148
|
-
],
|
|
149
|
-
"language": "Ruby",
|
|
150
|
-
"license": "http://unlicense.org",
|
|
151
|
-
"doapDesc": "EarlReport generates HTML+RDFa rollups of multiple EARL reports",
|
|
152
|
-
"shortdesc": "Earl Report summary generator",
|
|
153
|
-
"release": {
|
|
154
|
-
"@id": "https://github.com/gkellogg/earl-report/tree/0.5.2",
|
|
155
|
-
"@type": "doap:Version",
|
|
156
|
-
"name": "earl-report-0.5.2",
|
|
157
|
-
"doap:created": {
|
|
158
|
-
"@type": "http://www.w3.org/2001/XMLSchema#date",
|
|
159
|
-
"@value": "2021-01-19"
|
|
160
|
-
},
|
|
161
|
-
"revision": "0.5.2"
|
|
162
|
-
},
|
|
163
|
-
"name": "earl-report",
|
|
164
|
-
"developer": [
|
|
165
|
-
{
|
|
166
|
-
"@id": "https://greggkellogg.net/foaf#me",
|
|
167
|
-
"@type": [
|
|
168
|
-
"foaf:Person",
|
|
169
|
-
"Assertor"
|
|
170
|
-
],
|
|
171
|
-
"foaf:name": "Gregg Kellogg",
|
|
172
|
-
"foaf:homepage": "https://greggkellogg.net/"
|
|
173
|
-
}
|
|
174
|
-
],
|
|
175
|
-
"homepage": "https://github.com/gkellogg/earl-report"
|
|
176
|
-
},
|
|
177
|
-
"name": "Turtle Test Results",
|
|
178
113
|
"entries": [
|
|
179
114
|
{
|
|
180
115
|
"@id": "http://example/manifest.ttl",
|
|
@@ -183,51 +118,50 @@
|
|
|
183
118
|
"Report"
|
|
184
119
|
],
|
|
185
120
|
"rdfs:comment": "Description for Example Test Cases",
|
|
186
|
-
"title": "Example Test Cases",
|
|
187
121
|
"entries": [
|
|
188
122
|
{
|
|
189
123
|
"@id": "http://example/manifest.ttl#testeval00",
|
|
190
124
|
"@type": [
|
|
191
125
|
"http://www.w3.org/ns/rdftest#TestTurtleEval",
|
|
192
|
-
"
|
|
193
|
-
"
|
|
126
|
+
"TestCase",
|
|
127
|
+
"TestCriterion"
|
|
194
128
|
],
|
|
195
129
|
"rdfs:comment": "Blank subject",
|
|
196
130
|
"assertions": [
|
|
197
131
|
{
|
|
198
|
-
"@id": "_:
|
|
132
|
+
"@id": "_:b4",
|
|
199
133
|
"@type": "Assertion",
|
|
200
|
-
"mode": "earl:automatic",
|
|
201
134
|
"subject": "https://rubygems.org/gems/rdf-turtle",
|
|
202
|
-
"
|
|
135
|
+
"mode": "earl:automatic",
|
|
203
136
|
"test": "http://example/manifest.ttl#testeval00",
|
|
137
|
+
"assertedBy": "https://greggkellogg.net/foaf#me",
|
|
204
138
|
"result": {
|
|
205
|
-
"@id": "_:
|
|
139
|
+
"@id": "_:b5",
|
|
206
140
|
"@type": "TestResult",
|
|
207
141
|
"outcome": "earl:passed"
|
|
208
142
|
}
|
|
209
143
|
}
|
|
210
144
|
],
|
|
211
145
|
"testAction": "http://example/test-00.ttl",
|
|
212
|
-
"
|
|
213
|
-
"
|
|
146
|
+
"title": "subm-test-00",
|
|
147
|
+
"testResult": "http://example/test-00.out"
|
|
214
148
|
},
|
|
215
149
|
{
|
|
216
150
|
"@id": "_:b0",
|
|
217
151
|
"@type": [
|
|
218
152
|
"http://www.w3.org/ns/rdftest#TestTurtleEval",
|
|
219
|
-
"
|
|
220
|
-
"
|
|
153
|
+
"TestCase",
|
|
154
|
+
"TestCriterion"
|
|
221
155
|
],
|
|
222
156
|
"rdfs:comment": "@prefix and qnames",
|
|
223
157
|
"assertions": [
|
|
224
158
|
{
|
|
225
|
-
"@id": "_:
|
|
159
|
+
"@id": "_:b2",
|
|
226
160
|
"@type": "Assertion",
|
|
227
161
|
"subject": "https://rubygems.org/gems/rdf-turtle",
|
|
228
162
|
"test": "_:b0",
|
|
229
163
|
"result": {
|
|
230
|
-
"@id": "_:
|
|
164
|
+
"@id": "_:b3",
|
|
231
165
|
"@type": "TestResult",
|
|
232
166
|
"outcome": "earl:untested"
|
|
233
167
|
},
|
|
@@ -235,10 +169,76 @@
|
|
|
235
169
|
}
|
|
236
170
|
],
|
|
237
171
|
"testAction": "http://example/test-01.ttl",
|
|
238
|
-
"
|
|
239
|
-
"
|
|
172
|
+
"title": "subm-test-01",
|
|
173
|
+
"testResult": "http://example/test-01.out"
|
|
240
174
|
}
|
|
241
|
-
]
|
|
175
|
+
],
|
|
176
|
+
"title": "Example Test Cases"
|
|
242
177
|
}
|
|
243
|
-
]
|
|
178
|
+
],
|
|
179
|
+
"testSubjects": [
|
|
180
|
+
{
|
|
181
|
+
"@id": "https://rubygems.org/gems/rdf-turtle",
|
|
182
|
+
"@type": [
|
|
183
|
+
"doap:Project",
|
|
184
|
+
"TestSubject",
|
|
185
|
+
"Software"
|
|
186
|
+
],
|
|
187
|
+
"developer": [
|
|
188
|
+
{
|
|
189
|
+
"@id": "https://greggkellogg.net/foaf#me",
|
|
190
|
+
"@type": [
|
|
191
|
+
"foaf:Person",
|
|
192
|
+
"Assertor"
|
|
193
|
+
],
|
|
194
|
+
"foaf:name": "Gregg Kellogg",
|
|
195
|
+
"foaf:homepage": "https://greggkellogg.net/"
|
|
196
|
+
}
|
|
197
|
+
],
|
|
198
|
+
"doapDesc": "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.",
|
|
199
|
+
"release": {
|
|
200
|
+
"@id": "_:b1",
|
|
201
|
+
"revision": "unknown"
|
|
202
|
+
},
|
|
203
|
+
"name": "RDF::Turtle",
|
|
204
|
+
"homepage": "http://ruby-rdf.github.com/rdf-turtle",
|
|
205
|
+
"language": "Ruby"
|
|
206
|
+
}
|
|
207
|
+
],
|
|
208
|
+
"bibRef": "[[TURTLE]]",
|
|
209
|
+
"name": "Turtle Test Results",
|
|
210
|
+
"generatedBy": {
|
|
211
|
+
"@id": "https://rubygems.org/gems/earl-report",
|
|
212
|
+
"@type": [
|
|
213
|
+
"doap:Project",
|
|
214
|
+
"Software"
|
|
215
|
+
],
|
|
216
|
+
"developer": [
|
|
217
|
+
{
|
|
218
|
+
"@id": "https://greggkellogg.net/foaf#me",
|
|
219
|
+
"@type": [
|
|
220
|
+
"foaf:Person",
|
|
221
|
+
"Assertor"
|
|
222
|
+
],
|
|
223
|
+
"foaf:name": "Gregg Kellogg",
|
|
224
|
+
"foaf:homepage": "https://greggkellogg.net/"
|
|
225
|
+
}
|
|
226
|
+
],
|
|
227
|
+
"doapDesc": "EarlReport generates HTML+RDFa rollups of multiple EARL reports",
|
|
228
|
+
"license": "http://unlicense.org",
|
|
229
|
+
"release": {
|
|
230
|
+
"@id": "https://github.com/gkellogg/earl-report/tree/0.6.0",
|
|
231
|
+
"@type": "doap:Version",
|
|
232
|
+
"revision": "0.6.0",
|
|
233
|
+
"doap:created": {
|
|
234
|
+
"@type": "http://www.w3.org/2001/XMLSchema#date",
|
|
235
|
+
"@value": "2021-03-19"
|
|
236
|
+
},
|
|
237
|
+
"name": "earl-report-0.6.0"
|
|
238
|
+
},
|
|
239
|
+
"name": "earl-report",
|
|
240
|
+
"homepage": "https://github.com/gkellogg/earl-report",
|
|
241
|
+
"shortdesc": "Earl Report summary generator",
|
|
242
|
+
"language": "Ruby"
|
|
243
|
+
}
|
|
244
244
|
}
|
data/spec/test-files/results.ttl
CHANGED
|
@@ -8,21 +8,21 @@
|
|
|
8
8
|
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
|
9
9
|
|
|
10
10
|
<> a doap:Project, earl:Software ;
|
|
11
|
+
earl:assertions </Users/gregg/Projects/earl-report/spec/test-files/report-complete.ttl> ;
|
|
12
|
+
mf:entries (<http://example/manifest.ttl>) ;
|
|
11
13
|
earl:testSubjects <https://rubygems.org/gems/rdf-turtle> ;
|
|
12
14
|
dc:bibliographicCitation "[[TURTLE]]" ;
|
|
13
|
-
earl:assertions </Users/gregg/Projects/earl-report/spec/test-files/report-complete.ttl> ;
|
|
14
|
-
earl:generatedBy <https://rubygems.org/gems/earl-report> ;
|
|
15
15
|
doap:name "Turtle Test Results" ;
|
|
16
|
-
|
|
16
|
+
earl:generatedBy <https://rubygems.org/gems/earl-report> .
|
|
17
17
|
|
|
18
18
|
# Manifests
|
|
19
19
|
<http://example/manifest.ttl> a mf:Manifest, earl:Report ;
|
|
20
20
|
rdfs:comment "Description for Example Test Cases" ;
|
|
21
|
-
mf:name "Example Test Cases" ;
|
|
22
21
|
mf:entries (<http://example/manifest.ttl#testeval00>
|
|
23
|
-
_:b0)
|
|
22
|
+
_:b0) ;
|
|
23
|
+
mf:name "Example Test Cases" .
|
|
24
24
|
|
|
25
|
-
<http://example/manifest.ttl#testeval00> a <http://www.w3.org/ns/rdftest#TestTurtleEval>, earl:
|
|
25
|
+
<http://example/manifest.ttl#testeval00> a <http://www.w3.org/ns/rdftest#TestTurtleEval>, earl:TestCase, earl:TestCriterion ;
|
|
26
26
|
rdfs:comment "Blank subject" ;
|
|
27
27
|
earl:assertions [
|
|
28
28
|
a earl:Assertion ;
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
earl:assertedBy <https://greggkellogg.net/foaf#me> ;
|
|
36
36
|
] ;
|
|
37
37
|
mf:action <http://example/test-00.ttl> ;
|
|
38
|
-
mf:
|
|
39
|
-
mf:
|
|
38
|
+
mf:name "subm-test-00" ;
|
|
39
|
+
mf:result <http://example/test-00.out> .
|
|
40
40
|
|
|
41
|
-
_:b0 a <http://www.w3.org/ns/rdftest#TestTurtleEval>, earl:
|
|
41
|
+
_:b0 a <http://www.w3.org/ns/rdftest#TestTurtleEval>, earl:TestCase, earl:TestCriterion ;
|
|
42
42
|
rdfs:comment "@prefix and qnames" ;
|
|
43
43
|
earl:assertions [
|
|
44
44
|
a earl:Assertion ;
|
|
@@ -50,16 +50,16 @@ _:b0 a <http://www.w3.org/ns/rdftest#TestTurtleEval>, earl:TestCriterion, earl:T
|
|
|
50
50
|
] ;
|
|
51
51
|
] ;
|
|
52
52
|
mf:action <http://example/test-01.ttl> ;
|
|
53
|
-
mf:
|
|
54
|
-
mf:
|
|
53
|
+
mf:name "subm-test-01" ;
|
|
54
|
+
mf:result <http://example/test-01.out> .
|
|
55
55
|
|
|
56
|
-
<https://rubygems.org/gems/rdf-turtle> a doap:Project, earl:
|
|
57
|
-
doap:
|
|
56
|
+
<https://rubygems.org/gems/rdf-turtle> a doap:Project, earl:TestSubject, earl:Software ;
|
|
57
|
+
doap:developer <https://greggkellogg.net/foaf#me> ;
|
|
58
58
|
doap:description "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."@en ;
|
|
59
59
|
doap:release [doap:revision "unknown"] ;
|
|
60
60
|
doap:name "RDF::Turtle" ;
|
|
61
|
-
doap:
|
|
62
|
-
doap:
|
|
61
|
+
doap:homepage <http://ruby-rdf.github.com/rdf-turtle> ;
|
|
62
|
+
doap:programming-language "Ruby" .
|
|
63
63
|
|
|
64
64
|
<https://greggkellogg.net/foaf#me> a foaf:Person, earl:Assertor ;
|
|
65
65
|
foaf:name "Gregg Kellogg" ;
|
|
@@ -74,10 +74,10 @@ _:b0 a <http://www.w3.org/ns/rdftest#TestTurtleEval>, earl:TestCriterion, earl:T
|
|
|
74
74
|
doap:homepage <https://github.com/gkellogg/earl-report>;
|
|
75
75
|
doap:programming-language "Ruby";
|
|
76
76
|
doap:license <http://unlicense.org>;
|
|
77
|
-
doap:release <https://github.com/gkellogg/earl-report/tree/0.
|
|
77
|
+
doap:release <https://github.com/gkellogg/earl-report/tree/0.6.0>;
|
|
78
78
|
doap:developer <https://greggkellogg.net/foaf#me> .
|
|
79
79
|
|
|
80
|
-
<https://github.com/gkellogg/earl-report/tree/0.
|
|
81
|
-
doap:name "earl-report-0.
|
|
82
|
-
doap:created "2021-
|
|
83
|
-
doap:revision "0.
|
|
80
|
+
<https://github.com/gkellogg/earl-report/tree/0.6.0> a doap:Version;
|
|
81
|
+
doap:name "earl-report-0.6.0";
|
|
82
|
+
doap:created "2021-03-19"^^xsd:date;
|
|
83
|
+
doap:revision "0.6.0" .
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: earl-report
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.6.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Gregg Kellogg
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-03-
|
|
11
|
+
date: 2021-03-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: linkeddata
|
|
@@ -171,6 +171,7 @@ files:
|
|
|
171
171
|
- spec/test-files/report-complete.ttl
|
|
172
172
|
- spec/test-files/report-no-doap.ttl
|
|
173
173
|
- spec/test-files/report-no-foaf.ttl
|
|
174
|
+
- spec/test-files/report-no-test.ttl
|
|
174
175
|
- spec/test-files/results.html
|
|
175
176
|
- spec/test-files/results.jsonld
|
|
176
177
|
- spec/test-files/results.ttl
|
|
@@ -188,7 +189,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
188
189
|
requirements:
|
|
189
190
|
- - ">="
|
|
190
191
|
- !ruby/object:Gem::Version
|
|
191
|
-
version: '2.
|
|
192
|
+
version: '2.5'
|
|
192
193
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
193
194
|
requirements:
|
|
194
195
|
- - ">="
|
|
@@ -208,6 +209,7 @@ test_files:
|
|
|
208
209
|
- spec/test-files/report-complete.ttl
|
|
209
210
|
- spec/test-files/report-no-doap.ttl
|
|
210
211
|
- spec/test-files/report-no-foaf.ttl
|
|
212
|
+
- spec/test-files/report-no-test.ttl
|
|
211
213
|
- spec/test-files/results.html
|
|
212
214
|
- spec/test-files/results.jsonld
|
|
213
215
|
- spec/test-files/results.ttl
|