Using Testing makes whole package rebuild after each change from run to debug mode inside tests
Opened this issue · 2 comments
Executing task: swift: Building and Running Tests
> swift test --enable-experimental-swift-testing --experimental-event-stream-version 0 --experimental-event-stream-output /tmp/vscodemkfifo-1718907655582 --disable-xctest --filter RebuildTest\.DeviceTest\/ -Xswiftc -diagnostic-style=swift -Xswiftc -cxx-interoperability-mode=default
Building for debugging...
[8/8]
Build complete! (0.11s)
....
✔ Test run with 3 tests passed after 0.149 seconds.
true
* Terminal will be reused by tasks, press any key to close it.
* Executing task: swift: Build All
> swift build --build-tests -Xswiftc -diagnostic-style=swift -Xswiftc -cxx-interoperability-mode=default
Building for debugging...
[14/369]
To Reproduce
Use any Testing project run test, after it finish run debug on the same test.
Expected behavior
No rebuilding with every run (debugging tests shouldn't use .xctest?)
Environment
- OS: WSL debian 12
- Swift version Swift version 6.0-dev (LLVM bf8bbb910874156, Swift a0bb875256e41ae)
Target: x86_64-unknown-linux-gnu - Visual Studio Code version: 1.90.2
- vscode-swift version: 1.10.2
After digging in to this a bit it looks like swift build --build-tests
is not passing the -DSWIFT_PM_SUPPORTS_SWIFT_TESTING
flag like swift test
is. This difference in build arguments is causing a rebuild.
I'm going to move this issue under https://github.com/apple/swift-package-manager/ once it is migrated to the swiftlang organization (hopefully soon).
So the SWIFT_PM_SUPPORTS_SWIFT_TESTING
flag can soon be removed from SwiftPM since swift-testing no longer requires it. This became the case with the removal of 5.10 support in swift-testing: apple/swift-testing#467. Once a swift-testing 0.11.0 is tagged the flag can be removed from SwiftPM and this usecase should speed up.