-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Add a Functional.Tests project that doesn't have InternalsVisibleTo #2306
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
Comments
A direct example of the problem here is this conversation: Here - the only API to enable this scenario was by using the |
I agree with this. So to give the example of #2100, part of that work would be that we'd make the This was top of mind for me when doing #2300. While much of it was clearly stuff that didn't belong in any public surface, some of it was stuff that I wasn't quite sure we had an alternative for yet. (Some things I know we don't, like, e.g., filters, which AFAIK we in some cases still need to add per #933.) At the same time, the coverage we get via accessing components our legacy (command line, |
We can use this project for the Scenarios tests. |
@eerhardt @TomFinley Question about this Test.Functional/ project. I created the project, and I am migrating v1.0 Scenarios over to it. What I've noticed is that these aren't necessarily tests, as in "run these and make sure the APIs return the correct values". What they are, are compile-time checks that ask "Can I compose this in ML.NET?" So my question for you two is, do we need non- |
My opinion is that we need non- |
Great. I'll keep them as tests then and add checks on the outputs. This will give them a baseline-y feel, which is nice. Second question @eerhardt @TomFinley . The current tests folder defines a key that other projects can use to set One solution is to move them to a different folder. This might have cascading changes, with scripts etc., so I'm disinclined from doing that. Another solution is to have a test that uses reflection to try to compile code that we know doesn't work and verifies that it throws. We can also not worry about this. What do you two think? |
One way we can try to avoid this is to ensure the new Functional.Tests assembly isn't strong-named. You can only add So we could shut off these properties: machinelearning/Directory.Build.props Lines 101 to 106 in 30fe08a
for this project. And then add a comment in the |
Today, our ML.NET project has
InternalsVisibleTo
all of our tests projects. This is not ideal because we can't ensure that our public API meets scenarios that our customers can actually use. We could easily internalize something that is necessary to a scenario, but we wouldn't catch it by our tests because our tests all have internal-access.We should add a new test project - or set of test projects - that do not have
InternalsVisibleTo
access. We can put all our public API tests in this project, and we can ensure that customers can use the same code to meet those scenarios. At first we should have at least one test in the project(s), and we can migrate and add new tests over time./cc @TomFinley @shauheen @glebuk
The text was updated successfully, but these errors were encountered: