use of package versions and their download via wget
NoSQL databases would be a good feature, but AFAIK there are no generalized adapters in Jenkins plugins. On the other hand, SQL-databases can be integrated via “Database plugin”, which hardly depends on native java.sql.* and javax.sql.* libraries.
I propose to add support of SQL databases only. Many No-SQL DBs have SQL wrappers (e.g. MySQL Cluster or Mongo), so it will be possible to integrate them.
My vision of the implementation:
- xUnit data source options:
- Database configuration (provided by Database plugin)
- SQL query
- The query should support variables substitution
generic stuff like patterns
- Data formats:
- A simple plain format is preferable
- xUnit test structure and statistics can be recalculated inside plugin
- Column names may be hardcoded, because a user can assign them in SQL request
- It would be great to have a global storage of requests (version X)
Response columns:
- TEST_PATH - “package name + testName” path with dot delimiters
- TIMESTAMP - A start time of the test
- HOSTNAME – A test executor
- TIME – duration of the test
- Test-case stuff:
- IS_SKIPPED
- ERROR_TYPE
- ERROR_MESSAGE
- FAILURE_TYPE
- FAILURE_MESSAGE
- SYSTEM_OUT
- SYSTEM_ERR
It is possible to re-construct an almost-complete JUnit 4 report from such query, so it may be a convenient approach with relatively low efforts.
Adding the ability to store test results is a good idea for the xUnit plugin.
But we must define a schema, right?
Is a RDMS is the best choice? What about a document-oriented NoDQL database such as MongoDB?
What you thoughts?