Skip to content

Tests which use deployers do not work on Helix #10268

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

Open
natemcmaster opened this issue May 15, 2019 · 9 comments
Open

Tests which use deployers do not work on Helix #10268

natemcmaster opened this issue May 15, 2019 · 9 comments
Labels
affected-very-few This issue impacts very few customers area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions clean-up This issue is internal clean-up and has no effect on public APIs or expected behaviors severity-nice-to-have This label is used by an internal tool task
Milestone

Comments

@natemcmaster
Copy link
Contributor

The current design of test deployers requires the source code for the test projects to exist on the machine running tests AND for the code to be buildable at test-time. This creates two problems:

  1. In distributed testing on Helix, the source code is not present, only test binaries. Tests which rely on deployers are currently disabled
  2. Simply copying the source code into a distributed test environment is insufficient because the projects are not currently written to build in a clean, vanilla "dotnet build" context.

Potential solutions

Two options:

  1. build test assets along with the test project and copy the test assets as binaries into the test output. Deployers run on binaries (dotnet foo.dll) instead of on source (dotnet publish && dotnet run)
  2. change the test asset code to be buildable in a 'vanilla' build context - don't build locally, only during test time. Deployers work the same, but test code should not build in VS or during build.cmd with the rest of the repo -- the code only builds during test execution.

Option 1 is preferable because it is easier to ensure the code can compile when we change APIs, and in many cases we're not especially interested in testing the behavior of the SDK.

Option 2 has some marginal benefit in that it reduces the up-front build time of the repo and makes the test payload smaller.

cc @Tratcher @anurse

@natemcmaster
Copy link
Contributor Author

@anurse - thoughts on this one? Is this something Build Team or K Core should do?

@analogrelay
Copy link
Contributor

I think think belongs mostly on the KCore side. We need to update all our tests to build the site during build and just run them during tests.

@Tratcher @jkotalik I think you've both done some looking at that in the past, do you know where we stand there? Which server functional tests remain un-Helixable?

@jkotalik
Copy link
Contributor

From what I can tell, besides IIS tests, all functional test with deployers do not run on helix. From my knowledge so far, I think all of them can be put on helix, it's just that no one has committed the work to fix them.

@analogrelay
Copy link
Contributor

Ok, cool. I think that work probably lives with us then. Swapping to servers area. I'll put it in p8 because I do think we should try to get this done. The fact that it doesn't affect customer code does mean it'll probably have a lowish priority for now though.

@analogrelay analogrelay added area-servers and removed area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework labels Jun 10, 2019
@analogrelay analogrelay added the clean-up This issue is internal clean-up and has no effect on public APIs or expected behaviors label Jun 18, 2019
@analogrelay analogrelay added this to the 3.0.0-preview8 milestone Jun 18, 2019
@jkotalik jkotalik self-assigned this Jul 9, 2019
@jkotalik
Copy link
Contributor

jkotalik commented Jul 9, 2019

@anurse this seems like a good time for me to overhaul the functional tests deployments. #9693 and re-enabling music store tests are tangentially related.

@ericstj
Copy link
Member

ericstj commented Mar 24, 2020

@anurse is this only for the hosting Shutdown tests or are you using this to track other tests in aspnetcore? /cc @maryamariyan

@Tratcher
Copy link
Member

@ericstj this tracks the deployers used in the server functional tests.
https://github.com/dotnet/aspnetcore/tree/master/src/Servers/test/FunctionalTests

At one point we made a simplified copy of those deployers for the hosting shutdown tests in the extensions repo.

@ericstj
Copy link
Member

ericstj commented Mar 24, 2020

OK, we'll make a separate issue to track the extensions project.

@jkotalik
Copy link
Contributor

@JunTaoLuo you were looking into deployers for grpc tests, right? Is that tracked in a separate issue?

Besides that, there are a few server tests and music store tests that could be ported to helix, but they aren't critical tests.

@jkotalik jkotalik added affected-very-few This issue impacts very few customers severity-nice-to-have This label is used by an internal tool task labels Nov 12, 2020 — with ASP.NET Core Issue Ranking
@amcasey amcasey added area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions and removed area-runtime labels Aug 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affected-very-few This issue impacts very few customers area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions clean-up This issue is internal clean-up and has no effect on public APIs or expected behaviors severity-nice-to-have This label is used by an internal tool task
Projects
None yet
Development

No branches or pull requests

7 participants