-
Notifications
You must be signed in to change notification settings - Fork 392
Open
Description
The issue I'm experiencing seems to be pinpointed to the following lines of code:
Lines 350 to 352 in 7c26ad1
if (self.config.traverseNamespace or not path) or \ | |
os.path.realpath( | |
os.path.normcase(module_path)).startswith(path): |
Within the above if statement, I see
os.path.realpath(os.path.normcase(module_path))
when comparing to path, which is called a little earlier (in line 343) Line 343 in 7c26ad1
path = os.path.normcase(os.path.realpath(path)) |
The problem is that you can get very different results when you call os.path.realpath(os.path.normcase(<your path>))
vs. os.path.normcase(os.path.realpath(<your path>))
, and as a result, the if statement returns False on Windows for me. Here is the log statement:
nose.loader: DEBUG: Load tests from module path C:\jenkins\workspace\my_cli-windows-gerrit-build\src\tests?
nose.loader: DEBUG: path: c:\jenkins\workspace\my_cli-windows-gerrit-build\src\tests os.path.realpath(c:\jenkins\workspace\my_cli-windows-gerrit-build\src\tests): C:\jenkins\workspace\my_cli-windows-gerrit-build\src\tests
The suggested fix is for the if statement on L350 to call os.path.normcase(os.path.realpath(module_path)).startswith(path)
to match the method order on L343. I can confirm that after making this change in the source code, all of my tests are detected by nose as expected.
Metadata
Metadata
Assignees
Labels
No labels