apache / lucenenet

Apache Lucene.NET
https://lucenenet.apache.org/
Apache License 2.0
2.24k stars 639 forks source link

Task: Review Lucene.Net.TestFramework for Missing Features, Incomplete Features and Inconsistencies #1017

Open NightOwl888 opened 1 week ago

NightOwl888 commented 1 week ago

Is there an existing issue for this?

Task description

While it is presumed that we have enough of the test framework ported for the 4.8.0 release, we don't currently have an inventory of the features that are not ported or only partially working. For example, there are properties like LuceneTestCase.SuiteFailureMarker that are public but currently do not function that should either be made internal or functional before the release. There are also "after suite" cleanup features that are not ported (#898) that seem like they may be useful or even critical for fixing issues like #271.

For informational purposes, here are the open issues for the test framework at the time of this writing:

Known Test Framework Incomplete Features

Known Test Framework Bugs/Inconsistencies


This task is to analyze the test framework to determine which features exist that we don't have. It will take some analysis to work out where a feature begins and ends, but once that is determined, we should use it to generate a list of missing features. From that list, we should then open an issue for each feature (assuming there isn't already an issue for it) so we can prioritize it and assign it a milestone. EDIT: Let's make the deliverable of this task the initial list. From there, we will decide whether each feature deserves its own issue or should be scrapped. That list can simply be posted as a comment here.

We should also be on the lookout for features that are incomplete or inconsistent and open issues for those, as well.

If there are any notes that come from this analysis that could be helpful for us to decide on how difficult it is to port a feature or how valuable it is, please add them to the corresponding issue.

NOTE: The main places to look are in LuceneTestCase and the missing classes in the Lucene.Net.Util namespace (i.e. "TestRule" classes).

NOTE: Some of the randomized-testing runner classes were ported to Lucene.Net.TestFramework (at least at one point), so if there are types that are from that library, they can be excluded from the features list because they are covered by #264. We have a substitute for the randomized-testing runner in the Support/Util folder and don't intend to port the entire library for the 4.8.0 release. It is a considerable amount of extra work to make those features general enough to work outside of the context of the test framework. Although, we may be missing tests from randomized-testing that would help to ensure our substitute is working as expected that could be considered "features".