muter-mutation-testing / muter

🔎 Automated mutation testing for Swift 🕳️
MIT License
498 stars 39 forks source link

Muter copies the codebase it's testing into a temporary directory #13

Closed SeanROlszewski closed 5 years ago

SeanROlszewski commented 5 years ago

Falling out of a conversation and some research done on #3, it makes sense to have Muter copy the code base it's testing into a temporary directory - /tmp is most likely.

Muter will still need to restore files after mutating them, but prior to running the test suite again, so the existing code will probably stay the same. This issue adds a step prior to source file discovery or mutation discovery which moves the entire code base that will be analyzed into a new directory. Additionally, there's the potential that there will need to be some (likely very) small rework in associating this new directory with the existing code that uses file paths.

ZevEisenberg commented 5 years ago

Remember not to copy over the .git folder, because it's going to be full of small files that take a long time to copy, and I assume you don't need it in order to build. You'll probably want to grab other dot files, though.

(Unless an app's build process does things like deriving a build number from the git repo, so you might want to stub in an empty repo? Or just copy everything?)

You might want to look at how CocoaPods works when you call pod lib lint, since it's setting up a whole project somewhere deep inside /tmp. Might be a good starting point. Also check out the mktemp UNIX command, which creates a temp file or directory with a unique name.

SeanROlszewski commented 5 years ago

@ZevEisenberg would you have any interest in paring on this? :)

ZevEisenberg commented 5 years ago

I’d love to!