-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bootstrap Hedgehog #366
Comments
I really like this idea, but I don't know how to bootstrap in a compiled language. Here is a post by Mark Seemann with someone discussion on this topic. |
I'd bootstrap in (kind of ) the same way as F# compiler bootstraps; in our case the latest stable major release can be used to build a "proto" Hedgehog assembly. |
Won't there be a name conflict among DLLs (two wanting to be called |
Perhaps there can always be a pre-compiled Hedgehog-proto.dll (that we can trust, e.g. knowing its SHA256). |
I hope I am wrong, because I am very interested in getting this to work. |
Another issue for sure would be namespace collisions when we try and test ourselves 😅, this will have to be looked into. Right now, the only thing I can think of is changing the namespace based on some |
Diving into implementation, this SO answer suggests using
If we go down this route, we may have to do the bootstrapping in |
I never knew about this feature, interesting!
Are you suggesting that we would use the |
Yep... at least it (necessarily) improves test coverage.
I believe we would be referencing an old version of Hedgehog (e.g. 0.10), possibly via Nuget. To float another idea, during a release, we could run a script that changes all the namespaces to include the version (e.g. |
The stuff from nuget would be fine, but the code we're testing wouldn't show up at all. This is a minor issue that shouldn't dictate our solution, but it's something to note.
I was actually considering pulling the code for a release from github and running |
GitHub can host NuGet packages within each repository, so we could host the NuGet packages there. |
I think it would be a good idea to use the most recent stable version of Hedgehog to test the next/unstable version. Having property tests for Hedgehog itself would make the codebase much stronger (I realize we already use the current version for some tests), but I don't think using the unstable version to test itself is a good idea.
I'm also open to using another PBT library (FsCheck, etc) for this purpose, however I think it would be neat to use our own library.
The text was updated successfully, but these errors were encountered: