lucenenet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shad Storhaug (Jira)" <>
Subject [jira] [Closed] (LUCENENET-435) Fix the test suite for Lucene.Net Core
Date Mon, 30 Sep 2019 18:07:00 GMT


Shad Storhaug closed LUCENENET-435.
    Resolution: Won't Fix

We don't have the latitude to modify the test framework anymore, since it is now an end-user
component. Nearly all of these issues are now addressed. 

1. Tests are running on Linux
2. File & Path combines are using FileSupport class
3. #pragma 618 is being used
4. Helper methods have been abstracted into test utility classes (mostly by the Lucene team)
5. Testing mocks have been created by the Lucene team

Some of them will be fixed automatically when we update Lucene.

1. Rethrows inside of try/catch will be converted to Throws method in future versions of Lucene.

As for infrastructure validation, that would only make sense if we were using a directory
other than the temp directory for test files. This directory is permissive by default, so
there isn't much point in doing this extra work unless that fact changes.

Since most of this is now solved or will resolve itself as we update Lucene, there is no reason
to keep this issue open (except for the "list of things to do/not to do", but I am not sure
we really need that, as the Lucene team has seemingly thought it through for us).

> Fix the test suite for Lucene.Net Core
> --------------------------------------
>                 Key: LUCENENET-435
>                 URL:
>             Project: Lucene.Net
>          Issue Type: Task
>          Components: Lucene.Net Test
>    Affects Versions: Lucene.Net 2.9.4g, Lucene.Net 3.0.3, Lucene.Net 4.8.0
>         Environment: all
>            Reporter: michael herndon
>            Assignee: michael herndon
>            Priority: Major
>              Labels: refactoring, stability, testing,
>   Original Estimate: 336h
>  Remaining Estimate: 336h
> If wish to work on one of these, create a new sub-task from this one, assign it to yourself
and submit the patch or commit it. make sure that if you create any new files to include the
apache 2.0 license.   
>  * There needs to be a running list of things to do/not to do with testing. I don't know
if this goes in a jira or do we keep a running list on the wiki or site for people to pick
up and  help with.  
>  * Tests need to run on mono and not Fail (there is a good deal of failing tests on mono,
mostly due to the temp directory have the C:\ in the path).  
>  * Assert.Throw<ExceptionType>() needs to be used instead of Try/Catch Assert.Fail.
>  * File & Path combines to the temp directory need helper methods, 
>      * e,g, having this in a hundred places is bad   new System.IO.FileInfo(System.IO.Path.Combine(Support.AppSettings.Get("tempDir",
""), "testIndex"));
>  * We should still be testing deprecated methods, but we need to use #pragma warning
disable/enable 0618  for testing those. otherwise compiler warnings are too numerous to be
anywhere near helpful.
>  * We should only be using deprecated methods in places where they are being explicitly
tested, other tests that need that functionality in order to validate those tests should be
re factored to use methods that are not deprecated.
>  * Identify code that could be abstracted into test utility classes.   
>  * Infrastructure Validation tests need to be made, anything that seems like infrastructure.
 e.g. does the temp directory exist, does the folders that the tests use inside the temp directory
exist, can we read/write to those folders. (if a ton of tests fail due to the file system,
we should be able to point out that it was due to permissions or missing folders, files, etc).

>  * Identify what classes need an interface, abstract class or inherited in order to create
testing mocks. (once those classes are created, they should be documented in the wiki). 
>  * fix rethrows inside try/catches that log information then rethrows the exception.
 i.e. use throw; instead of throw ex; 
> Note Assert.Throws needs to replace stuff like the following. We should also be checking
the messages for exceptions and make sure they make sense and can help users fix isses if
the exceptions are aimed at the library users.
> try
> 			{
> 				d = DateTools.StringToDate("97"); // no date
> 				Assert.Fail();
> 			}
> 			catch (System.FormatException e)
> 			{
> 				/* expected exception */

This message was sent by Atlassian Jira

View raw message