mikeger / XcodeSelectiveTesting

Xcode selective testing: Run only tests relevant to the changeset.
MIT License
193 stars 11 forks source link

Globs are not considered for Target results #36

Open apps4everyone opened 1 week ago

apps4everyone commented 1 week ago

Then in Targets globs (folders) are used and not specific files then the result is not mapped to targets. This results in tuist no target for the changed file is shown:

example: Changed file at /..../Test.swift appears not to belong to any target Expected target is the one the files is used for.

mikeger commented 1 week ago

I see @apps4everyone , do you have by any chance a way to create a minimal example of such a setup? It's important to know at which point the glob is inserted, so I can add code to expand it to the full path.

If there would be an example, I can also add it to the test suits to make sure the change is solid.

If it's not possible, please also ping me so I can create my own example and you can check if it accurately represents the issue.

apps4everyone commented 1 week ago

Hey, unfortunately I can't share my client's project but in the tuist fixtues should be some examples https://github.com/tuist/tuist/tree/main/fixtures

mikeger commented 1 week ago

Hey @apps4everyone , thanks for the tip, I checked some of the projects but could not immediately find the one that would generate the issue. I am afraid I need more help to figure out the root cause of the issue.

I tried to play around with the paths, creating a reference to the file above the project in the file hierarchy, this is what I got:


/* Begin PBXFileReference section */
        279A84C32CE5E982006877CD /* ExampleGlob.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ExampleGlob.swift; path = ../ExampleGlob.swift; sourceTree = SOURCE_ROOT; };
        B24BBDA82CAC237A005E6DAC /* ExampleProjectInGroup.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ExampleProjectInGroup.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */

Even with this set up, the issue does not seem to be reproducible for me, as in the output I can see that the paths are resolved correctly for the file and also for the case when there is a folder that has glob in path:

Files for targets:
ExampleGlob:ExampleProjectInGroup:
    /Users/user/Desktop/GlobPath/Example/ExampleGlob.xcodeproj/project.pbxproj
    /Users/user/Desktop/GlobPath/ExampleGlob.swift
Screenshot 2024-11-14 at 09 18 10

My example GlobPath.zip