As the volume of PURL test cases grows we need to consider better ways to organize PURL test files to:
- Make it easier for PURL tool implementors to use the test files, especially to easily distinguish between 'base' conformance test cases and optional 'advanced' test cases
- Clarify when and now new test cases are needed for a new PURL type
The current structure of test files is:
- purl-spec/tests/spec/: This folder contains JSON test files that are not for a specific PURL type.
- specification-test.json - This file contains an array of test objects that primarily cover testing the validity of individual PURL components, separators between PURL components, and complete PURL strings.
- purl-spec/tests/types/: This folder contains one JSON test file for each registered PURL type. These tests should be focused on test cases that are specific to a PURL type, such as those for namespace or qualifiers.
There are three current proposals to restructure the PURL test files which overlap so we need to agree on the target file structure before we decide how to proceed with the individual proposals. My working assumption is that we will want to automate the conversion of existing test files to the new target structure as much as possible.
These proposed changes do not require changes to the PURL test schema because the schema does not cover the aggregation of test cases into test files.
As the volume of PURL test cases grows we need to consider better ways to organize PURL test files to:
The current structure of test files is:
There are three current proposals to restructure the PURL test files which overlap so we need to agree on the target file structure before we decide how to proceed with the individual proposals. My working assumption is that we will want to automate the conversion of existing test files to the new target structure as much as possible.
tests/spec/specification-test.jsonshows the PURL component that is the test subject.test_group#760 - This proposal and Move test cases from collections to atomic test files #765 have significant overlap and are probably mutually exclusive.These proposed changes do not require changes to the PURL test schema because the schema does not cover the aggregation of test cases into test files.