Repository navigation
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #383 +/- ##
==========================================
+ Coverage 89.21% 89.29% +0.07%
==========================================
Files 60 60
Lines 5081 5081
Branches 1451 1451
==========================================
+ Hits 4533 4537 +4
+ Misses 317 315 -2
+ Partials 231 229 -2 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
I like the idea of investing in this. One other thing I'd like to see is some way to keep the skiplist here synchronized with the skiplist in cql-tests-runner/conf/cql-execution-local.json. Note that the skiplist in cql-execution is a superset of the one in the cql-tests-runner config because the cql-tests-runner config only skips tests we consider to be invalid (whereas cql-execution also skips tests that we fail due to our own bugs/limitations). I think the best way to do this is to have the skiplist here be the sole source of truth with a script to export the cql-tests-runner config from it. One thing we'd need to manage as well is keeping the set of tests that are used here and in the cql-tests-runner in sync. We could potentially use a submodule to cql-tests-runner for that since git supports recursive submodules. |
580275e to
3a2ffe5
Compare
|
@cmoesel Status update: I've added The skip-lists are a little more complicated than they might seem though, there are:
It's obviously not impossible to represent all this but I don't think it works well with the current skip-list.txt file format. And everything clean seems like a bigger refactor than I was hoping to do. But I'm exploring some options on that now |
|
After exploring a few options, the one that I've implemented here is to have a separate I think it's still not a totally perfect option, but it's a much smaller change than rewriting everything to work with, say, a YAML skip file instead |
|
Thanks for this @dehall. I didn't do a super thorough review, but there are a few things that I think we should consider:
|
✅ I think conceptually the categories are pretty good, but yeah basing anything on the text of the category name is flaky. I had been hesitant to do much that would change things like
✅
I haven't implemented this yet. It is possible, Codex showed me a couple options, one with a replaced global |
Yeah, that was definitely a longer term thought. You've already made great improvements to how this works, so I'm happy as it is right now. |
…config file based on skip-list and new runner overrides file
7af2fc9 to
8e1f605
Compare
|
@cmoesel The cql-to-elm-cli PR that this depended on is now merged and included in a release, so this is now ready for a full review |
This PR introduces some improvements to the build:spec-test-data process to reduce some manual processes, and automatically skip tests that are not relevant to the library.
This PR depends on an update to cql-to-elm-cli to return a nonzero process exit code when there is a file that fails to translate. This causes the build script to terminate and should hopefully be obvious to the user. Currently, if the cli fails to translate a file, nothing detects that and we can get stale/out-of-sync files. That's happened a couple times in the past 4 months alone.
This PR is marked WIP as it depends on cqframework/clinical_quality_language#1813 to be merged and a new release of cql-to-elm-cli. Until then, if we want to test this out, a local installation is necessary. Steps below.Modifications here:
invalid: "semantic"orinvalid: "syntax"as these fail at the translator level. Remove these from skip-list.txt./specification.versioncql-tests-runnera git submodule. Update scripts accordingly to point to where the relevant files are, and update tool settings (mocha, lint, etc) to ignore those nested directories.test/spec-tests/create-runner-skip-list.jsto generate an updated cql-tests-runner config file based on the latest skip list. This file is heavily based oncheck-skip-list.jsand does similar iteration over the skip-list and cql-test XMLs. (For now I didn't touchcheck-skip-list.jsto keep the diff smaller, but we could probably refactor some common logic if we wanted.) Because the sets of tests we want to skip are different between our unit tests and the tests-runner, this script depends on a new filetest/spec-tests/runner-skip-list.txtto add further skips.common-skip-listandunit-tests-skip-list. This is primarily for the benefit of the create-runner-skip-list script, where we don't want to skip the "unit-test" skips related to known issues in this repo. Also moved a few tests between categories such as adding a new category for "Numeric Type Mismatch" and moving a couple tests based on review..gitattributesthat marks generated ELM files and spec-test CQLs as generated, which makes GitHub collapse them by default in the code view. This is by file path, not by file type or extension, so there shouldn't be false positives that hide real code changes.Pull requests into cql-execution require the following.
Submitter and reviewer should ✔ when done.
For items that are not-applicable, mark "N/A" and ✔.
Submitter:
npm run checkto run tests, lint, and prettier)Reviewer:
Name: