earl-report 0.4.9 → 0.5.0
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/README.md +5 -0
- data/VERSION +1 -1
- data/lib/earl_report.rb +59 -57
- data/lib/earl_report/views/earl_report.html.haml +9 -6
- data/spec/spec_helper.rb +1 -0
- data/spec/test-files/results.html +12 -14
- data/spec/test-files/results.jsonld +87 -87
- data/spec/test-files/results.ttl +18 -18
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 49a823f243638c7162903264e52f226f6f02e8e85943f1a4cd97a12594b080ab
|
|
4
|
+
data.tar.gz: b4855bcd3dbddc0e3b8eff04dbfd1ff8e8ed062827878471268e11b0fd509dbb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c971edc43f724554263423eb192fde98aa810cf2eaed21a5349f3199e765550087e8ce34ee0e8191c073b075415cf49f40ae5905b41bcc5954b0221fb7667c36
|
|
7
|
+
data.tar.gz: bf787b883a24228aab04490fb93b32e26b9763dd67e00565f61040b0a1bfd0e1bef4a41e91353182c685c5bf7913e8c5d17a141feeac691abfb7d3b36695bc91
|
data/README.md
CHANGED
|
@@ -34,6 +34,11 @@ of the reported software, in the following form:
|
|
|
34
34
|
doap:developer <http://greggkellogg.net/foaf#me> ;
|
|
35
35
|
doap:homepage <http://ruby-rdf.github.com/rdf-turtle> ;
|
|
36
36
|
doap:description "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."@en ;
|
|
37
|
+
doap:release [
|
|
38
|
+
doap:name "RDF::Turtle 3.1.0" ;
|
|
39
|
+
doap:created "2015-09-27"^^xsd:date ;
|
|
40
|
+
doap:revision "3.1.0"
|
|
41
|
+
] ;
|
|
37
42
|
doap:programming-language "Ruby" .
|
|
38
43
|
|
|
39
44
|
The [DOAP]() description may be included in the [EARL]() report. If not found,
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.5.0
|
data/lib/earl_report.rb
CHANGED
|
@@ -33,13 +33,14 @@ class EarlReport
|
|
|
33
33
|
PREFIX doap: <http://usefulinc.com/ns/doap#>
|
|
34
34
|
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
|
|
35
35
|
|
|
36
|
-
SELECT DISTINCT ?uri ?name ?doapDesc ?revision ?homepage ?language ?developer ?devName ?devType ?devHomepage
|
|
36
|
+
SELECT DISTINCT ?uri ?name ?doapDesc ?release ?revision ?homepage ?language ?developer ?devName ?devType ?devHomepage
|
|
37
37
|
WHERE {
|
|
38
38
|
?uri a doap:Project; doap:name ?name; doap:developer ?developer .
|
|
39
39
|
OPTIONAL { ?uri doap:homepage ?homepage . }
|
|
40
40
|
OPTIONAL { ?uri doap:description ?doapDesc . }
|
|
41
41
|
OPTIONAL { ?uri doap:programming-language ?language . }
|
|
42
|
-
OPTIONAL { ?uri doap:release
|
|
42
|
+
OPTIONAL { ?uri doap:release ?release . }
|
|
43
|
+
OPTIONAL { ?release doap:revision ?revision .}
|
|
43
44
|
OPTIONAL { ?developer a ?devType .}
|
|
44
45
|
OPTIONAL { ?developer foaf:name ?devName .}
|
|
45
46
|
OPTIONAL { ?developer foaf:homepage ?devHomepage .}
|
|
@@ -220,7 +221,14 @@ class EarlReport
|
|
|
220
221
|
test_resources = tests.values.map {|v| v[:uri]}.uniq.compact
|
|
221
222
|
subjects = {}
|
|
222
223
|
|
|
223
|
-
|
|
224
|
+
# Initialize test assertions with an entry for each test subject
|
|
225
|
+
test_assertion_lists = {}
|
|
226
|
+
test_assertion_lists = tests.keys.inject({}) do |memo, test|
|
|
227
|
+
memo.merge(test => [])
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
assertion_stats = {}
|
|
231
|
+
|
|
224
232
|
# Read test assertion files into assertion graph
|
|
225
233
|
files.flatten.each do |file|
|
|
226
234
|
status "read #{file}"
|
|
@@ -237,10 +245,10 @@ class EarlReport
|
|
|
237
245
|
|
|
238
246
|
# Load DOAP definitions
|
|
239
247
|
unless solution[:name] # not loaded
|
|
240
|
-
status "read doap description for #{subject}"
|
|
248
|
+
status " read doap description for #{subject}"
|
|
241
249
|
begin
|
|
242
250
|
doap_graph = RDF::Graph.load(subject)
|
|
243
|
-
status "
|
|
251
|
+
status " loaded #{doap_graph.count} triples"
|
|
244
252
|
file_graph << doap_graph.to_a
|
|
245
253
|
rescue
|
|
246
254
|
warn "\nfailed to load DOAP from #{subject}: #{$!}"
|
|
@@ -260,10 +268,10 @@ class EarlReport
|
|
|
260
268
|
if !solutions.first[:developer]
|
|
261
269
|
warn "\nNo developer identified for #{solutions.first[:uri]}"
|
|
262
270
|
elsif !solutions.first[:devName]
|
|
263
|
-
status "read description for developer #{solutions.first[:developer].inspect}"
|
|
271
|
+
status " read description for developer #{solutions.first[:developer].inspect}"
|
|
264
272
|
begin
|
|
265
273
|
foaf_graph = RDF::Graph.load(solutions.first[:developer])
|
|
266
|
-
status "
|
|
274
|
+
status " loaded #{foaf_graph.count} triples"
|
|
267
275
|
file_graph << foaf_graph.to_a
|
|
268
276
|
# Reload solutions
|
|
269
277
|
solutions = SPARQL.execute(TEST_SUBJECT_QUERY, file_graph)
|
|
@@ -272,6 +280,7 @@ class EarlReport
|
|
|
272
280
|
end
|
|
273
281
|
end
|
|
274
282
|
|
|
283
|
+
release = nil
|
|
275
284
|
solutions.each do |solution|
|
|
276
285
|
# Kepp track of subjects
|
|
277
286
|
subjects[solution[:uri]] = RDF::URI(file)
|
|
@@ -294,59 +303,55 @@ class EarlReport
|
|
|
294
303
|
graph << RDF::Statement(solution[:developer], RDF::Vocab::FOAF.name, devName) if devName
|
|
295
304
|
graph << RDF::Statement(solution[:developer], RDF::Vocab::FOAF.homepage, solution[:devHomepage]) if solution[:devHomepage]
|
|
296
305
|
|
|
297
|
-
|
|
298
|
-
graph << RDF::Statement(solution[:uri], RDF::Vocab::DOAP.release,
|
|
299
|
-
graph << RDF::Statement(
|
|
306
|
+
release ||= solution[:release] || RDF::Node.new
|
|
307
|
+
graph << RDF::Statement(solution[:uri], RDF::Vocab::DOAP.release, release)
|
|
308
|
+
graph << RDF::Statement(release, RDF::Vocab::DOAP.revision, (solution[:revision] || "unknown"))
|
|
300
309
|
end
|
|
301
310
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
311
|
+
# Make sure that each assertion matches a test and add reference from test to assertion
|
|
312
|
+
found_solutions = false
|
|
313
|
+
subject = nil
|
|
305
314
|
|
|
306
|
-
|
|
307
|
-
|
|
315
|
+
status " query assertions"
|
|
316
|
+
SPARQL.execute(ASSERTION_QUERY, file_graph).each do |solution|
|
|
317
|
+
subject = solution[:subject]
|
|
318
|
+
unless tests[solution[:test]]
|
|
319
|
+
assertion_stats["Skipped"] = assertion_stats["Skipped"].to_i + 1
|
|
320
|
+
$stderr.puts "Skipping result for #{solution[:test]} for #{subject}, which is not defined in manifests"
|
|
321
|
+
next
|
|
322
|
+
end
|
|
323
|
+
unless subjects[subject]
|
|
324
|
+
assertion_stats["Missing Subject"] = assertion_stats["Missing Subject"].to_i + 1
|
|
325
|
+
$stderr.puts "No test result subject found for #{subject}: in #{subjects.keys.join(', ')}"
|
|
326
|
+
next
|
|
327
|
+
end
|
|
328
|
+
found_solutions ||= true
|
|
329
|
+
assertion_stats["Found"] = assertion_stats["Found"].to_i + 1
|
|
308
330
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
memo.merge(test => Array.new(subjects.length))
|
|
313
|
-
end
|
|
331
|
+
# Add this solution at the appropriate index within that list
|
|
332
|
+
ndx = subjects.keys.find_index(subject)
|
|
333
|
+
ary = test_assertion_lists[solution[:test]]
|
|
314
334
|
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
335
|
+
ary[ndx] = a = RDF::Node.new
|
|
336
|
+
graph << RDF::Statement(a, RDF.type, EARL.Assertion)
|
|
337
|
+
graph << RDF::Statement(a, EARL.subject, subject)
|
|
338
|
+
graph << RDF::Statement(a, EARL.test, solution[:test])
|
|
339
|
+
graph << RDF::Statement(a, EARL.assertedBy, solution[:by])
|
|
340
|
+
graph << RDF::Statement(a, EARL.mode, solution[:mode]) if solution[:mode]
|
|
341
|
+
r = RDF::Node.new
|
|
342
|
+
graph << RDF::Statement(a, EARL.result, r)
|
|
343
|
+
graph << RDF::Statement(r, RDF.type, EARL.TestResult)
|
|
344
|
+
graph << RDF::Statement(r, EARL.outcome, solution[:outcome])
|
|
345
|
+
end
|
|
346
|
+
|
|
347
|
+
# See if subject did not report results, which may indicate a formatting error in the EARL source
|
|
348
|
+
$stderr.puts "No results found for #{subject} using #{ASSERTION_QUERY}" unless found_solutions
|
|
328
349
|
end
|
|
329
|
-
found_solutions[subject] = true
|
|
330
|
-
assertion_stats["Found"] = assertion_stats["Found"].to_i + 1
|
|
331
|
-
|
|
332
|
-
# Add this solution at the appropriate index within that list
|
|
333
|
-
ndx = subjects.keys.find_index(subject)
|
|
334
|
-
ary = test_assertion_lists[solution[:test]] ||= []
|
|
335
|
-
|
|
336
|
-
ary[ndx] = a = RDF::Node.new
|
|
337
|
-
graph << RDF::Statement(a, RDF.type, EARL.Assertion)
|
|
338
|
-
graph << RDF::Statement(a, EARL.subject, subject)
|
|
339
|
-
graph << RDF::Statement(a, EARL.test, solution[:test])
|
|
340
|
-
graph << RDF::Statement(a, EARL.assertedBy, solution[:by])
|
|
341
|
-
graph << RDF::Statement(a, EARL.mode, solution[:mode]) if solution[:mode]
|
|
342
|
-
r = RDF::Node.new
|
|
343
|
-
graph << RDF::Statement(a, EARL.result, r)
|
|
344
|
-
graph << RDF::Statement(r, RDF.type, EARL.TestResult)
|
|
345
|
-
graph << RDF::Statement(r, EARL.outcome, solution[:outcome])
|
|
346
350
|
end
|
|
347
351
|
|
|
348
352
|
# Add ordered assertions for each test
|
|
349
353
|
test_assertion_lists.each do |test, ary|
|
|
354
|
+
ary[subjects.length - 1] ||= nil # extend for all subjects
|
|
350
355
|
# Fill any missing entries with an untested outcome
|
|
351
356
|
ary.each_with_index do |a, ndx|
|
|
352
357
|
unless a
|
|
@@ -368,11 +373,6 @@ class EarlReport
|
|
|
368
373
|
|
|
369
374
|
assertion_stats.each {|stat, count| status("Assertions #{stat}: #{count}")}
|
|
370
375
|
|
|
371
|
-
# See if any subject did not report results, which may indicate a formatting error in the EARL source
|
|
372
|
-
subjects.reject {|s| found_solutions[s]}.each do |sub|
|
|
373
|
-
$stderr.puts "No results found for #{sub} using #{ASSERTION_QUERY}"
|
|
374
|
-
end
|
|
375
|
-
|
|
376
376
|
# Add report wrapper to graph
|
|
377
377
|
ttl = %(
|
|
378
378
|
@prefix dc: <http://purl.org/dc/terms/> .
|
|
@@ -482,9 +482,11 @@ class EarlReport
|
|
|
482
482
|
@json_hash ||= begin
|
|
483
483
|
# Customized JSON-LD output
|
|
484
484
|
result = JSON::LD::API.fromRDF(graph) do |expanded|
|
|
485
|
-
framed = JSON::LD::API.frame(expanded, TEST_FRAME,
|
|
485
|
+
framed = JSON::LD::API.frame(expanded, TEST_FRAME,
|
|
486
|
+
expanded: true,
|
|
487
|
+
embed: '@never',
|
|
488
|
+
pruneBlankNodeIdentifiers: false)
|
|
486
489
|
# Reorder test subjects by @id
|
|
487
|
-
#require 'byebug'; byebug
|
|
488
490
|
framed['testSubjects'] = framed['testSubjects'].sort_by {|t| t['@id']}
|
|
489
491
|
|
|
490
492
|
# Reorder test assertions to make them consistent with subject order
|
|
@@ -334,10 +334,12 @@
|
|
|
334
334
|
- pass_fail = assertion['result']['outcome'].split(':').last.upcase.sub(/(PASS|FAIL)ED$/, '\1')
|
|
335
335
|
- passed_tests[ndx2][ndx] = (passed_tests[ndx2][ndx] || 0) + (pass_fail == 'PASS' ? 1 : 0)
|
|
336
336
|
%td{class: pass_fail, property: "earl:assertions", typeof: assertion['@type']}
|
|
337
|
-
- if assertion['assertedBy']
|
|
337
|
+
- if assertion['assertedBy'] && !assertion['assertedBy'].start_with?('_:')
|
|
338
338
|
%link{property: "earl:assertedBy", href: assertion['assertedBy']}
|
|
339
|
-
|
|
340
|
-
|
|
339
|
+
- if assertion['test'] && !assertion['test'].start_with?('_:')
|
|
340
|
+
%link{property: "earl:test", href: assertion['test']}
|
|
341
|
+
- if assertion['subject'] && !assertion['subject'].start_with?('_:')
|
|
342
|
+
%link{property: "earl:subject", href: assertion['subject']}
|
|
341
343
|
- if assertion['mode']
|
|
342
344
|
%link{property: 'earl:mode', href: assertion['mode']}
|
|
343
345
|
%span{property: "earl:result", typeof: assertion['result']['@type']}
|
|
@@ -443,10 +445,10 @@
|
|
|
443
445
|
%p{property: "dc:description rdfs:comment"}<
|
|
444
446
|
~ CGI.escapeHTML test['description'].to_s
|
|
445
447
|
%pre{class: "example actionDoc", property: "mf:action", resource: test['testAction'], title: "#{test['title']} Input"}<
|
|
446
|
-
~
|
|
448
|
+
~ URI.open(test['testAction']) {|f| f.set_encoding(Encoding::UTF_8); CGI.escapeHTML(f.read).gsub(/\n/, '<br/>')} rescue "#{test['testAction']} not loaded"
|
|
447
449
|
- if test['testResult']
|
|
448
450
|
%pre{class: "example resultDoc", property: "mf:result", resource: test['testResult'], title: "#{test['title']} Result"}<
|
|
449
|
-
~
|
|
451
|
+
~ URI.open(test['testResult']) {|f| f.set_encoding(Encoding::UTF_8); CGI.escapeHTML(f.read).gsub(/\n/, '<br/>')} rescue "#{test['testResult']} not loaded"
|
|
450
452
|
%section.appendix#report-generation-software{property: "earl:generatedBy", resource: tests['generatedBy']['@id'], typeof: tests['generatedBy']['@type'].join(' ')}
|
|
451
453
|
%h2
|
|
452
454
|
%span.secno="D."
|
|
@@ -464,7 +466,8 @@
|
|
|
464
466
|
%span{property: "doap:release", resource: rel['@id'], typeof: 'doap:Version'}
|
|
465
467
|
%span{property: "doap:revision"}<=rel['revision']
|
|
466
468
|
%meta{property: "doap:name", content: rel['name']}
|
|
467
|
-
|
|
469
|
+
- if rel['created']
|
|
470
|
+
%meta{property: "doap:created", content: rel['created'], datatype: "xsd:date"}
|
|
468
471
|
an
|
|
469
472
|
%a{property: "doap:license", href: doap['license']}<="Unlicensed"
|
|
470
473
|
%span{property: "doap:programming-language"}<="Ruby"
|
data/spec/spec_helper.rb
CHANGED
|
@@ -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='2020-
|
|
77
|
-
|
|
76
|
+
<time class='dt-published' datetime='2020-04-10' property='dc:issued'>
|
|
77
|
+
10 April 2020
|
|
78
78
|
</time>
|
|
79
79
|
</h2>
|
|
80
80
|
<dl>
|
|
@@ -231,7 +231,7 @@ Report Generation Software
|
|
|
231
231
|
<span class='secno'>2.</span>
|
|
232
232
|
Test Manifests
|
|
233
233
|
</h2>
|
|
234
|
-
<section id='Description-for-Example-Test-Cases' resource='http://example/manifest.ttl' typeof='
|
|
234
|
+
<section id='Description-for-Example-Test-Cases' resource='http://example/manifest.ttl' typeof='mf:Manifest Report'>
|
|
235
235
|
<h2>
|
|
236
236
|
<span class='secno'>2.1</span>
|
|
237
237
|
<span property='dc:title mf:name'>Example Test Cases</span>
|
|
@@ -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='TestCriterion http://www.w3.org/ns/rdftest#TestTurtleEval
|
|
248
|
+
<tr inlist='inlist' rel='mf:entries' resource='http://example/manifest.ttl#testeval00' typeof='TestCase TestCriterion http://www.w3.org/ns/rdftest#TestTurtleEval'>
|
|
249
249
|
<td>
|
|
250
250
|
<a href='#test_1fdd82ac4caf30510cabfdb0a5987ddd'>subm-test-00</a>
|
|
251
251
|
</td>
|
|
@@ -261,12 +261,11 @@ 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='_:b4' typeof='TestCase TestCriterion http://www.w3.org/ns/rdftest#TestTurtleEval'>
|
|
265
265
|
<td>
|
|
266
|
-
<a href='#
|
|
266
|
+
<a href='#test_c3a45336bb3ff1ac310bee3349a6ace7'>subm-test-01</a>
|
|
267
267
|
</td>
|
|
268
268
|
<td class='UNTESTED' property='earl:assertions' typeof='Assertion'>
|
|
269
|
-
<link href='_:b5' property='earl:test' />
|
|
270
269
|
<link href='http://rubygems.org/gems/rdf-turtle' property='earl:subject' />
|
|
271
270
|
<span property='earl:result' typeof='TestResult'>
|
|
272
271
|
<span property='earl:outcome' resource='earl:untested'>
|
|
@@ -301,7 +300,7 @@ This report was tested using the following test subjects:
|
|
|
301
300
|
<span about='http://rubygems.org/gems/rdf-turtle' property='doap:name'>RDF::Turtle</span>
|
|
302
301
|
</a>
|
|
303
302
|
</dt>
|
|
304
|
-
<dd property='earl:testSubjects' resource='http://rubygems.org/gems/rdf-turtle' typeof='
|
|
303
|
+
<dd property='earl:testSubjects' resource='http://rubygems.org/gems/rdf-turtle' typeof='doap:Project TestSubject Software'>
|
|
305
304
|
<dl>
|
|
306
305
|
<dt>Description</dt>
|
|
307
306
|
<dd lang='en' property='doap:description'>RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.</dd>
|
|
@@ -377,11 +376,11 @@ Test
|
|
|
377
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>
|
|
378
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>
|
|
379
378
|
</dd>
|
|
380
|
-
<dt id='
|
|
379
|
+
<dt id='test_c3a45336bb3ff1ac310bee3349a6ace7' resource='_:b4'>
|
|
381
380
|
Test
|
|
382
381
|
<span property='dc:title mf:name'>subm-test-01</span>
|
|
383
382
|
</dt>
|
|
384
|
-
<dd resource='_:
|
|
383
|
+
<dd resource='_:b4'>
|
|
385
384
|
<p property='dc:description rdfs:comment'></p>
|
|
386
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>
|
|
387
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>
|
|
@@ -400,10 +399,9 @@ This report generated by
|
|
|
400
399
|
<meta content='Earl Report summary generator' property='doap:shortdesc' />
|
|
401
400
|
<meta content='EarlReport generates HTML+RDFa rollups of multiple EARL reports' property='doap:description' />
|
|
402
401
|
version
|
|
403
|
-
<span property='doap:release' resource='https://github.com/gkellogg/earl-report/tree/0.4.
|
|
404
|
-
<span property='doap:revision'>0.4.
|
|
405
|
-
<meta content='earl-report-0.4.
|
|
406
|
-
<meta datatype='xsd:date' property='doap:created' />
|
|
402
|
+
<span property='doap:release' resource='https://github.com/gkellogg/earl-report/tree/0.4.9' typeof='doap:Version'>
|
|
403
|
+
<span property='doap:revision'>0.4.9</span>
|
|
404
|
+
<meta content='earl-report-0.4.9' property='doap:name' />
|
|
407
405
|
</span>
|
|
408
406
|
an
|
|
409
407
|
<a href='http://unlicense.org' property='doap:license'>Unlicensed</a>
|
|
@@ -108,137 +108,137 @@
|
|
|
108
108
|
"Software"
|
|
109
109
|
],
|
|
110
110
|
"name": "Turtle Test Results",
|
|
111
|
+
"assertions": [
|
|
112
|
+
"/Users/gregg/Projects/earl-report/spec/test-files/report-complete.ttl"
|
|
113
|
+
],
|
|
114
|
+
"generatedBy": {
|
|
115
|
+
"@id": "http://rubygems.org/gems/earl-report",
|
|
116
|
+
"@type": [
|
|
117
|
+
"doap:Project",
|
|
118
|
+
"Software"
|
|
119
|
+
],
|
|
120
|
+
"release": {
|
|
121
|
+
"@id": "https://github.com/gkellogg/earl-report/tree/0.4.9",
|
|
122
|
+
"@type": "doap:Version",
|
|
123
|
+
"name": "earl-report-0.4.9",
|
|
124
|
+
"doap:created": {
|
|
125
|
+
"@value": "2020-04-01",
|
|
126
|
+
"@type": "http://www.w3.org/2001/XMLSchema#date"
|
|
127
|
+
},
|
|
128
|
+
"revision": "0.4.9"
|
|
129
|
+
},
|
|
130
|
+
"name": "earl-report",
|
|
131
|
+
"homepage": "https://github.com/gkellogg/earl-report",
|
|
132
|
+
"developer": [
|
|
133
|
+
{
|
|
134
|
+
"@id": "http://greggkellogg.net/foaf#me",
|
|
135
|
+
"@type": [
|
|
136
|
+
"Assertor",
|
|
137
|
+
"foaf:Person"
|
|
138
|
+
],
|
|
139
|
+
"foaf:homepage": "http://greggkellogg.net/",
|
|
140
|
+
"foaf:name": "Gregg Kellogg"
|
|
141
|
+
}
|
|
142
|
+
],
|
|
143
|
+
"license": "http://unlicense.org",
|
|
144
|
+
"doapDesc": "EarlReport generates HTML+RDFa rollups of multiple EARL reports",
|
|
145
|
+
"shortdesc": "Earl Report summary generator",
|
|
146
|
+
"language": "Ruby"
|
|
147
|
+
},
|
|
148
|
+
"testSubjects": [
|
|
149
|
+
{
|
|
150
|
+
"@id": "http://rubygems.org/gems/rdf-turtle",
|
|
151
|
+
"@type": [
|
|
152
|
+
"doap:Project",
|
|
153
|
+
"TestSubject",
|
|
154
|
+
"Software"
|
|
155
|
+
],
|
|
156
|
+
"release": {
|
|
157
|
+
"@id": "_:b4",
|
|
158
|
+
"revision": "unknown"
|
|
159
|
+
},
|
|
160
|
+
"name": "RDF::Turtle",
|
|
161
|
+
"homepage": "http://ruby-rdf.github.com/rdf-turtle",
|
|
162
|
+
"developer": [
|
|
163
|
+
{
|
|
164
|
+
"@id": "http://greggkellogg.net/foaf#me",
|
|
165
|
+
"@type": [
|
|
166
|
+
"Assertor",
|
|
167
|
+
"foaf:Person"
|
|
168
|
+
],
|
|
169
|
+
"foaf:homepage": "http://greggkellogg.net/",
|
|
170
|
+
"foaf:name": "Gregg Kellogg"
|
|
171
|
+
}
|
|
172
|
+
],
|
|
173
|
+
"doapDesc": "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.",
|
|
174
|
+
"language": "Ruby"
|
|
175
|
+
}
|
|
176
|
+
],
|
|
177
|
+
"bibRef": "[[TURTLE]]",
|
|
111
178
|
"entries": [
|
|
112
179
|
{
|
|
113
180
|
"@id": "http://example/manifest.ttl",
|
|
114
181
|
"@type": [
|
|
115
|
-
"
|
|
116
|
-
"
|
|
182
|
+
"mf:Manifest",
|
|
183
|
+
"Report"
|
|
117
184
|
],
|
|
118
|
-
"title": "Example Test Cases",
|
|
119
185
|
"rdfs:comment": "Description for Example Test Cases",
|
|
186
|
+
"title": "Example Test Cases",
|
|
120
187
|
"entries": [
|
|
121
188
|
{
|
|
122
189
|
"@id": "http://example/manifest.ttl#testeval00",
|
|
123
190
|
"@type": [
|
|
191
|
+
"TestCase",
|
|
124
192
|
"TestCriterion",
|
|
125
|
-
"http://www.w3.org/ns/rdftest#TestTurtleEval"
|
|
126
|
-
"TestCase"
|
|
193
|
+
"http://www.w3.org/ns/rdftest#TestTurtleEval"
|
|
127
194
|
],
|
|
128
|
-
"title": "subm-test-00",
|
|
129
195
|
"rdfs:comment": "Blank subject",
|
|
130
|
-
"
|
|
196
|
+
"title": "subm-test-00",
|
|
131
197
|
"assertions": [
|
|
132
198
|
{
|
|
199
|
+
"@id": "_:b2",
|
|
133
200
|
"@type": "Assertion",
|
|
134
201
|
"mode": "earl:automatic",
|
|
202
|
+
"test": "http://example/manifest.ttl#testeval00",
|
|
203
|
+
"subject": "http://rubygems.org/gems/rdf-turtle",
|
|
135
204
|
"result": {
|
|
205
|
+
"@id": "_:b1",
|
|
136
206
|
"@type": "TestResult",
|
|
137
207
|
"outcome": "earl:passed"
|
|
138
208
|
},
|
|
139
|
-
"
|
|
140
|
-
"assertedBy": "http://greggkellogg.net/foaf#me",
|
|
141
|
-
"subject": "http://rubygems.org/gems/rdf-turtle"
|
|
209
|
+
"assertedBy": "http://greggkellogg.net/foaf#me"
|
|
142
210
|
}
|
|
143
211
|
],
|
|
212
|
+
"testAction": "http://example/test-00.ttl",
|
|
144
213
|
"testResult": "http://example/test-00.out"
|
|
145
214
|
},
|
|
146
215
|
{
|
|
147
|
-
"@id": "_:
|
|
216
|
+
"@id": "_:b0",
|
|
148
217
|
"@type": [
|
|
218
|
+
"TestCase",
|
|
149
219
|
"TestCriterion",
|
|
150
|
-
"http://www.w3.org/ns/rdftest#TestTurtleEval"
|
|
151
|
-
"TestCase"
|
|
220
|
+
"http://www.w3.org/ns/rdftest#TestTurtleEval"
|
|
152
221
|
],
|
|
153
|
-
"title": "subm-test-01",
|
|
154
222
|
"rdfs:comment": "@prefix and qnames",
|
|
155
|
-
"
|
|
223
|
+
"title": "subm-test-01",
|
|
156
224
|
"assertions": [
|
|
157
225
|
{
|
|
226
|
+
"@id": "_:b3",
|
|
158
227
|
"@type": "Assertion",
|
|
159
228
|
"result": {
|
|
229
|
+
"@id": "_:b5",
|
|
160
230
|
"@type": "TestResult",
|
|
161
231
|
"outcome": "earl:untested"
|
|
162
232
|
},
|
|
163
|
-
"test": "_:
|
|
233
|
+
"test": "_:b0",
|
|
164
234
|
"subject": "http://rubygems.org/gems/rdf-turtle",
|
|
165
235
|
"assertedBy": null
|
|
166
236
|
}
|
|
167
237
|
],
|
|
238
|
+
"testAction": "http://example/test-01.ttl",
|
|
168
239
|
"testResult": "http://example/test-01.out"
|
|
169
240
|
}
|
|
170
241
|
]
|
|
171
242
|
}
|
|
172
|
-
],
|
|
173
|
-
"generatedBy": {
|
|
174
|
-
"@id": "http://rubygems.org/gems/earl-report",
|
|
175
|
-
"@type": [
|
|
176
|
-
"doap:Project",
|
|
177
|
-
"Software"
|
|
178
|
-
],
|
|
179
|
-
"doapDesc": "EarlReport generates HTML+RDFa rollups of multiple EARL reports",
|
|
180
|
-
"shortdesc": "Earl Report summary generator",
|
|
181
|
-
"name": "earl-report",
|
|
182
|
-
"developer": [
|
|
183
|
-
{
|
|
184
|
-
"@id": "http://greggkellogg.net/foaf#me",
|
|
185
|
-
"@type": [
|
|
186
|
-
"Assertor",
|
|
187
|
-
"foaf:Person"
|
|
188
|
-
],
|
|
189
|
-
"foaf:name": "Gregg Kellogg",
|
|
190
|
-
"foaf:homepage": "http://greggkellogg.net/"
|
|
191
|
-
}
|
|
192
|
-
],
|
|
193
|
-
"homepage": "https://github.com/gkellogg/earl-report",
|
|
194
|
-
"release": {
|
|
195
|
-
"@id": "https://github.com/gkellogg/earl-report/tree/0.4.8",
|
|
196
|
-
"@type": "doap:Version",
|
|
197
|
-
"doap:created": {
|
|
198
|
-
"@value": "2019-09-06",
|
|
199
|
-
"@type": "http://www.w3.org/2001/XMLSchema#date"
|
|
200
|
-
},
|
|
201
|
-
"name": "earl-report-0.4.8",
|
|
202
|
-
"revision": "0.4.8"
|
|
203
|
-
},
|
|
204
|
-
"language": "Ruby",
|
|
205
|
-
"license": "http://unlicense.org"
|
|
206
|
-
},
|
|
207
|
-
"testSubjects": [
|
|
208
|
-
{
|
|
209
|
-
"@id": "http://rubygems.org/gems/rdf-turtle",
|
|
210
|
-
"@type": [
|
|
211
|
-
"TestSubject",
|
|
212
|
-
"doap:Project",
|
|
213
|
-
"Software"
|
|
214
|
-
],
|
|
215
|
-
"doapDesc": "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.",
|
|
216
|
-
"name": "RDF::Turtle",
|
|
217
|
-
"developer": [
|
|
218
|
-
{
|
|
219
|
-
"@id": "http://greggkellogg.net/foaf#me",
|
|
220
|
-
"@type": [
|
|
221
|
-
"Assertor",
|
|
222
|
-
"foaf:Person"
|
|
223
|
-
],
|
|
224
|
-
"foaf:name": "Gregg Kellogg",
|
|
225
|
-
"foaf:homepage": "http://greggkellogg.net/"
|
|
226
|
-
}
|
|
227
|
-
],
|
|
228
|
-
"homepage": "http://ruby-rdf.github.com/rdf-turtle",
|
|
229
|
-
"release": [
|
|
230
|
-
{
|
|
231
|
-
"revision": "unknown"
|
|
232
|
-
},
|
|
233
|
-
{
|
|
234
|
-
"revision": "unknown"
|
|
235
|
-
}
|
|
236
|
-
],
|
|
237
|
-
"language": "Ruby"
|
|
238
|
-
}
|
|
239
|
-
],
|
|
240
|
-
"bibRef": "[[TURTLE]]",
|
|
241
|
-
"assertions": [
|
|
242
|
-
"/Users/gregg/Projects/earl-report/spec/test-files/report-complete.ttl"
|
|
243
243
|
]
|
|
244
244
|
}
|
data/spec/test-files/results.ttl
CHANGED
|
@@ -18,15 +18,15 @@
|
|
|
18
18
|
|
|
19
19
|
# Manifests
|
|
20
20
|
|
|
21
|
-
<http://example/manifest.ttl> a
|
|
22
|
-
|
|
21
|
+
<http://example/manifest.ttl> a mf:Manifest,
|
|
22
|
+
earl:Report;
|
|
23
23
|
rdfs:comment "Description for Example Test Cases";
|
|
24
|
-
mf:entries (<http://example/manifest.ttl#testeval00> _:
|
|
24
|
+
mf:entries (<http://example/manifest.ttl#testeval00> _:g407680);
|
|
25
25
|
mf:name "Example Test Cases" .
|
|
26
26
|
|
|
27
|
-
<http://example/manifest.ttl#testeval00> a earl:
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
<http://example/manifest.ttl#testeval00> a earl:TestCase,
|
|
28
|
+
earl:TestCriterion,
|
|
29
|
+
<http://www.w3.org/ns/rdftest#TestTurtleEval>;
|
|
30
30
|
rdfs:comment "Blank subject";
|
|
31
31
|
mf:action <http://example/test-00.ttl>;
|
|
32
32
|
mf:name "subm-test-00";
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
earl:test <http://example/manifest.ttl#testeval00>
|
|
44
44
|
] .
|
|
45
45
|
|
|
46
|
-
_:
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
_:g407680 a earl:TestCase,
|
|
47
|
+
earl:TestCriterion,
|
|
48
|
+
<http://www.w3.org/ns/rdftest#TestTurtleEval>;
|
|
49
49
|
rdfs:comment "@prefix and qnames";
|
|
50
50
|
mf:action <http://example/test-01.ttl>;
|
|
51
51
|
mf:name "subm-test-01";
|
|
@@ -57,20 +57,20 @@ _:g406000 a earl:TestCriterion,
|
|
|
57
57
|
earl:outcome earl:untested
|
|
58
58
|
];
|
|
59
59
|
earl:subject <http://rubygems.org/gems/rdf-turtle>;
|
|
60
|
-
earl:test _:
|
|
60
|
+
earl:test _:g407680
|
|
61
61
|
] .
|
|
62
62
|
|
|
63
63
|
# Test Subjects
|
|
64
64
|
|
|
65
|
-
<http://rubygems.org/gems/rdf-turtle> a
|
|
66
|
-
|
|
65
|
+
<http://rubygems.org/gems/rdf-turtle> a doap:Project,
|
|
66
|
+
earl:TestSubject,
|
|
67
67
|
earl:Software;
|
|
68
68
|
doap:description "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."@en;
|
|
69
69
|
doap:developer <http://greggkellogg.net/foaf#me>;
|
|
70
70
|
doap:homepage <http://ruby-rdf.github.com/rdf-turtle>;
|
|
71
71
|
doap:name "RDF::Turtle";
|
|
72
72
|
doap:programming-language "Ruby";
|
|
73
|
-
doap:release [doap:revision "unknown"]
|
|
73
|
+
doap:release [doap:revision "unknown"] .
|
|
74
74
|
|
|
75
75
|
<http://greggkellogg.net/foaf#me> a earl:Assertor,
|
|
76
76
|
foaf:Person;
|
|
@@ -87,10 +87,10 @@ _:g406000 a earl:TestCriterion,
|
|
|
87
87
|
doap:license <http://unlicense.org>;
|
|
88
88
|
doap:name "earl-report";
|
|
89
89
|
doap:programming-language "Ruby";
|
|
90
|
-
doap:release <https://github.com/gkellogg/earl-report/tree/0.4.
|
|
90
|
+
doap:release <https://github.com/gkellogg/earl-report/tree/0.4.9>;
|
|
91
91
|
doap:shortdesc "Earl Report summary generator"@en .
|
|
92
92
|
|
|
93
|
-
<https://github.com/gkellogg/earl-report/tree/0.4.
|
|
94
|
-
doap:created "
|
|
95
|
-
doap:name "earl-report-0.4.
|
|
96
|
-
doap:revision "0.4.
|
|
93
|
+
<https://github.com/gkellogg/earl-report/tree/0.4.9> a doap:Version;
|
|
94
|
+
doap:created "2020-04-01"^^xsd:date;
|
|
95
|
+
doap:name "earl-report-0.4.9";
|
|
96
|
+
doap:revision "0.4.9" .
|
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.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Gregg Kellogg
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-04-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: linkeddata
|