-
Notifications
You must be signed in to change notification settings - Fork 558
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
Define test execution contracts to enable out of proc services #43
Comments
Currently each scenario test method sets itself up by getting a static property that returns the URL of the WCF service it will use. IRequestChannel channel = factory.CreateChannel(
new EndpointAddress(Endpoints.HttpBaseAddress_Basic)); I think the simplest approach would be to continue to use this style, but make the static properties interact with a well-known REST application to acquire that URL (rather than returning constant strings as they do today). This would probably take the form of a static test helper issuing a Http GET to that REST application passing in the symbolic name of that endpoint (example: "HttpBasicEndpoint"). The REST service would be responsible for ensuring the requested WCF service was started and return a 200 response with the full URL of the endpoint the test requested. The test methods would then do their work against this URL. Actually this means the test methods as they exist today would not change. This would also mean the REST service is responsible only for managing WCF services. It need not be aware of what tests will be run or what parameters they require. It also means the WCF services will be activated as they are needed. There is no need to try to decide up front which ones those are for a random set of test methods. I think the REST service would also need to support management API's as you suggested, such as shutting down services, retrieving logs, etc. One challenge will be to decide how that REST service is initially activated on every developer's machine. We can investigate that independently. Some other interesting areas to explore include asking where the REST service runs and how it is configured. In the simplest case, it would run on the developer's machine and return localhost URL's. It could also be aware of WCF services running on other machines and return those remote URL's. Or the REST service itself could be running on a different machine. I'd recommend walking before running and just get a localhost version of the REST service going. |
@roncain @hongdai I've put together something we can use to discuss this a bit more.
The API definition is following the guidance here - http://sajayantony.github.io/bifrost/ @iamjasonp the idea here is that this would be the bootstrap for our test host and also for our cross platform api blueprint. |
Nice! I cloned and debugged through bridge.exe (VS attach) to understand how this worked. And I experimented with changing ensureBridge.ps1 to invoke the Hostname resource (because I saw it was available). I also experimented with writing an HttpClient to call it, and that worked great: static void Main(string[] args)
{
HttpClient httpClient = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Put, "http://localhost:8080/resource")
request.Content = new StringContent("{name:'Bridge.Commands.WhoAmI'}");
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpResponseMessage response = httpClient.SendAsync(request).Result;
if (response.StatusCode == HttpStatusCode.OK)
{
string responseContent = response.Content.ReadAsStringAsync().Result;
Console.WriteLine("Response was '{0}'", responseContent);
}
else
{
Console.WriteLine("Unexpected status returned: {0}", response.StatusCode);
}
Console.ReadLine();
} Question: I see that PUT is the natural Http method to say "create" (for us: start service) and DELETE is the one to say "destroy" (for us, stop service). What kinds of things were you thinking we would do with POST? Would that offer a way to "update" some aspects of the resource? I think we have some interesting choices how to structure the routes and parameters. WebAPI would also allow parameters to be part of the route, or a query string (as well as the request body which was used here). But that is a secondary conversation as we go. I like this approach. |
Thanks for trying this out - @roncain as per the current api blueprint and as you correctly pointed out it would be a good idea to stick with the basic guiding principles of http verbs like PUT for create.
Yes post in my mind was for update and it might include things like updating the state of a resource etc. This is open for the test to interpret as a configuration update. For e.g. maybe remove an endpoint or add state information like sending a key or data to the service etc. which might be dynamically generated on the client. To be honest I even envision being able to centrally log operations and not have to do the painful text based logging. But for now I don't want to digress and over engineer a simple solution but keep options open and as @hongdai pointed out we should try to just solve the primary problem. But from a project file perspective we should be able to call the script like Invoke-RestMethod http://localhost:8080/resource/WhoAmI -Method PUT -Body "{name:'Bridge.Commands.WhoAmI'}" -ContentType application/json Or OS X/Linux bash we don't want to get into cross machine launching and could resort to something simple like curl --request PUT 'http://localhost:8080/resource' -H "Content-Type:application/json" -H "Accept: application/json" --data "{name:'Bridge.Commands.Hostname'}" Design optionsWe have multiple options for using the body or parameters. But for consistency I personally feel the body makes more sense and is more flexible to pass in objects and other things to the constructor and if we pick this, we could just wrap it with simple helpers that standardize on the body semantics and make requests like this for e.g. await Bridge.PutAsync(new {name : "Bridge.Commands.WhoAmI"}).StatusCode == OK If we have many operations we could just make his a swagger and auto generate C# to get fancy for kicks ;) Next up is to just launch our service using a the bridge. Also if we use the Asp.net webapi client your code should condense to using (HttpClient client = new HttpClient()) {
client.BaseAddress = new Uri("http://localhost:8080");
var result = client.PutAsJsonAsync("/resource/",
new { name = "Bridge.Commands.WhoAmI"}).Result;
Assert.Equal(result.StatusCode , HttpStatusCode.OK);
} I've added the tests to the bridge repo |
Are you thinking this belongs in a different GitHub repo, or is WCF okay for it? I recommend we take this in these stages (separate PR's):
|
@dmetzgar is currently looking at getting a crisp design for this in the build system. |
I looked into the bridge and have some design questions. The current system scans assemblies looking for types that have an Execute method, which is discovered through reflection. The assemblies would be loaded into the current appdomain. If I load the assemblies into a different appdomain, it's more difficult to do a reflective scan of types. Also, the current WcfService.exe relies on settings in its app.config. Creating a new appdomain per resource directory gives me the ability to set the app.config. One approach we can take is an interface shared between the bridge and any resources we want to load. But I think it's less intrusive if we just look for an .exe and .exe.config in the resource directory and use that as the appdomain's executing assembly. In that case, when you POST a new config resource directory, the bridge would create a new assembly and a new thread/task that does an execute assembly on whatever .exe it finds in the resource directory. That makes it easier to continue using the app.config for configuration of the WCF services. If we take that approach, the resources API is not needed because the bridge is pretty dumb about what it's starting up. It probably wouldn't work if you want to eventually be able to query the bridge for the URLs to use in the test. But in that case, I would imagine you're not changing the port numbers and only need the server name/IP address, which the bridge could easily provide. My thinking on breaking up the tests is that each test could be its own exe with its own config and would not have to implement any interfaces or follow any patterns in order to work with the bridge. The logging could be done by setting up a trace listener from the bridge. What do you guys think of this approach? |
I don't like the idea of launching separate processes for several reasons.
The multiple app domain idea also won't be compatible with running on core clr as it doesn't support multiple app domains. |
Agree with mconnew. This approach has more disadvantages than advantages. |
Let me address Matt's comments.
|
@dmetzgar, could you clarify each test has it's own exe? I thought that meant each test will be built into a separate exe - this will significantly increase the build time of our tests. It would increase the running time because there are much more assemblies to load. We recently change one test exe to several exes and there are noticeable performance degradation already. |
I always like to get the functional requirements out into the light first and then design around that. I think these requirements are:
It is this final requirement -- the interaction model -- that makes me prefer an AppDomain over an EXE. I think the Reflection needs to move into the AppDomain too, so Bridge would likely have its own MBRO object that it creates in the new AppDomain and just delegates to it. I think each resource probably needs its own AppDomain (think about tearing down one resource but leaving the others running). I used to think the PUT needed to return data, but now I think it only needs to return 200, or possibly some unique ID that can be re-used (imagine we had multiple instances of the same resource running someday). This requirement suggests we need more than an Execute() method. Maybe we literally need methods called PUT, POST, GET and DELETE inside each resource! As a concrete example, WCF tests would do a PUT of the "WcfTestService" to get it started, and it would do a GET to retrieve the URL it could use to talk to it directly (details of GET parameters to be worked out -- think about getting the URL, getting current status, getting a log file, etc). For the service shutdown test, it could first start the service (PUT), get the URL (GET). ping it, then kill it(DELETE) and then expect the next ping to throw. |
@roncain, your fifth item is specifying an implementation and isn't talking about requirements. I would also suggest that the requirement of being reconfigured with a new or modified set of DLL's is not needed considering items 1 and 2. Unless you feel there's a need to change the set of DLL's mid test run, then changing the set of DLL's could be done by restarting the Bridge with a new set of DLL's. |
I think a key feature is getting something running soon and then exploring how it can be extended. I want to avoid getting paralyzed with options. Therefore the minimum necessary behavior to me seem to be:
I think separate AppDomains for each resource make the most sense for flexibility. |
We need to add support to the Bridge mechanism to allow for specifying a hostname to be localhost.fiddler to allow fiddler inspection of the requests when running on localhost. Currently there is a stopgap solution in #89 which will need to be reverted once this work is complete. |
When I resolve #29 we will have a mechanism to pass MSBuild properties down into the built assembly which can be forwarded to the Bridge. We need a mechanism for the Bridge to accept a set of name value pairs when configured, and the fiddler prefix can be one of them. |
4a9f860 Moved bridgeclient.cs (Dustin Metzgar) 1e1d9f2 Fixes for package references now that bridge has moved (Dustin Metzgar) 1431f2d Adding Newtonsoft.Json to project.lock.json files for the tests. (Dustin Metzgar) a6784c6 Updated build directories for bridge. (Dustin Metzgar) 6d86254 Moved bridge and WcfService to a tools directory so they don't interfere with the rest of the build. (Dustin Metzgar) 919ec9c Fixes for the rest of the tests that were broken by using the bridge (Dustin Metzgar) ade7d15 Client.ClientBase and Client.TypedClient tests fixed (Dustin Metzgar) d1879a6 Fixing build message (Dustin Metzgar) b27bea2 Nuget package restore doesn't work from build.cmd since that's VS only. Adding a step in dirs.targets to do this. (Dustin Metzgar) 8f3b582 Only applies xunit option to turn off parallelization for OuterLoop tests (Dustin Metzgar) 45c4748 Newtonsoft.Json added to project.lock.json files (Dustin Metzgar) 527997a Updates to NuGet packages so restore works correctly (Dustin Metzgar) 24e612c Cleaning up files without ending newlines, removing assemblyinfos, working on nuget package restore. (Dustin Metzgar) a1b4099 Build.cmd fixes (Dustin Metzgar) 304517a Removing unused files from WcfService project (Dustin Metzgar) a6fa62b using cleanup (Dustin Metzgar) 5da2776 Renamed BridgeTestFixture to BridgeClient (Dustin Metzgar) c0f7b1b TestCategories needs to be set before dir.props is included so that xunit options are set correctly (Dustin Metzgar) bbdb966 Only applies xunit option to turn off parallelization for OuterLoop tests (Dustin Metzgar) 69f5233 Newtonsoft.Json added to project.lock.json files (Dustin Metzgar) 9366ab2 Updates to NuGet packages so restore works correctly (Dustin Metzgar) f89c4cc Cleaning up files without ending newlines, removing assemblyinfos, working on nuget package restore. (Dustin Metzgar) 72c14ee Build.cmd fixes (Dustin Metzgar) 36d4c67 Dynamic invoke should look for Get/Put, not GET/PUT. (Dustin Metzgar) a8bbf93 Changed GET/PUT to Get/Put (Dustin Metzgar) 47462f1 Removing bridge dependency from BaseAddress. Changing resource methods from GET/PUT to Get/Put. (Dustin Metzgar) 09fcf75 Removed nuget.exe and nuget.exe.config since there should be no need to check in binaries. (Dustin Metzgar) dcbedb4 Changed BridgeTestFixture into static class since class fixtures may not be supported in ToF. Converted the rest of the outer loop test projects to use the new test.props and test.targets. Replaced all addresses (except for Fiddler) with URLs pulled from the bridge. (Dustin Metzgar) 26679d4 Added encoders tests, which includes a tcp endpoint. (Dustin Metzgar) 21ac3da Didn't see that these files were not being tracked with the last commit. (Dustin Metzgar) ecad13c Port number no longer passed into PUT on the resource. Converted some other tests over. Moved properties and after build target to separate .props and .targets files to reduce the copied code in test .csproj files. (Dustin Metzgar) 5a93048 Adding the bridge and simplifying its use in tests. (Dustin Metzgar) a70ee8c Bridge test changes (Dustin Metzgar) 8c3fc8c Fixing build message (Dustin Metzgar) 789ff2e Nuget package restore doesn't work from build.cmd since that's VS only. Adding a step in dirs.targets to do this. (Dustin Metzgar) d59346e Removing unused files from WcfService project (Dustin Metzgar) b4cc235 using cleanup (Dustin Metzgar) 966e30e Renamed BridgeTestFixture to BridgeClient (Dustin Metzgar)
4a9f860 Moved bridgeclient.cs (Dustin Metzgar) 1e1d9f2 Fixes for package references now that bridge has moved (Dustin Metzgar) 1431f2d Adding Newtonsoft.Json to project.lock.json files for the tests. (Dustin Metzgar) a6784c6 Updated build directories for bridge. (Dustin Metzgar) 6d86254 Moved bridge and WcfService to a tools directory so they don't interfere with the rest of the build. (Dustin Metzgar) 919ec9c Fixes for the rest of the tests that were broken by using the bridge (Dustin Metzgar) ade7d15 Client.ClientBase and Client.TypedClient tests fixed (Dustin Metzgar) d1879a6 Fixing build message (Dustin Metzgar) b27bea2 Nuget package restore doesn't work from build.cmd since that's VS only. Adding a step in dirs.targets to do this. (Dustin Metzgar) 8f3b582 Only applies xunit option to turn off parallelization for OuterLoop tests (Dustin Metzgar) 45c4748 Newtonsoft.Json added to project.lock.json files (Dustin Metzgar) 527997a Updates to NuGet packages so restore works correctly (Dustin Metzgar) 24e612c Cleaning up files without ending newlines, removing assemblyinfos, working on nuget package restore. (Dustin Metzgar) a1b4099 Build.cmd fixes (Dustin Metzgar) 304517a Removing unused files from WcfService project (Dustin Metzgar) a6fa62b using cleanup (Dustin Metzgar) 5da2776 Renamed BridgeTestFixture to BridgeClient (Dustin Metzgar) c0f7b1b TestCategories needs to be set before dir.props is included so that xunit options are set correctly (Dustin Metzgar) bbdb966 Only applies xunit option to turn off parallelization for OuterLoop tests (Dustin Metzgar) 69f5233 Newtonsoft.Json added to project.lock.json files (Dustin Metzgar) 9366ab2 Updates to NuGet packages so restore works correctly (Dustin Metzgar) f89c4cc Cleaning up files without ending newlines, removing assemblyinfos, working on nuget package restore. (Dustin Metzgar) 72c14ee Build.cmd fixes (Dustin Metzgar) 36d4c67 Dynamic invoke should look for Get/Put, not GET/PUT. (Dustin Metzgar) a8bbf93 Changed GET/PUT to Get/Put (Dustin Metzgar) 47462f1 Removing bridge dependency from BaseAddress. Changing resource methods from GET/PUT to Get/Put. (Dustin Metzgar) 09fcf75 Removed nuget.exe and nuget.exe.config since there should be no need to check in binaries. (Dustin Metzgar) dcbedb4 Changed BridgeTestFixture into static class since class fixtures may not be supported in ToF. Converted the rest of the outer loop test projects to use the new test.props and test.targets. Replaced all addresses (except for Fiddler) with URLs pulled from the bridge. (Dustin Metzgar) 26679d4 Added encoders tests, which includes a tcp endpoint. (Dustin Metzgar) 21ac3da Didn't see that these files were not being tracked with the last commit. (Dustin Metzgar) ecad13c Port number no longer passed into PUT on the resource. Converted some other tests over. Moved properties and after build target to separate .props and .targets files to reduce the copied code in test .csproj files. (Dustin Metzgar) 5a93048 Adding the bridge and simplifying its use in tests. (Dustin Metzgar) a70ee8c Bridge test changes (Dustin Metzgar) 8c3fc8c Fixing build message (Dustin Metzgar) 789ff2e Nuget package restore doesn't work from build.cmd since that's VS only. Adding a step in dirs.targets to do this. (Dustin Metzgar) d59346e Removing unused files from WcfService project (Dustin Metzgar) b4cc235 using cleanup (Dustin Metzgar) 966e30e Renamed BridgeTestFixture to BridgeClient (Dustin Metzgar)
4a9f860 Moved bridgeclient.cs (Dustin Metzgar) 1e1d9f2 Fixes for package references now that bridge has moved (Dustin Metzgar) 1431f2d Adding Newtonsoft.Json to project.lock.json files for the tests. (Dustin Metzgar) a6784c6 Updated build directories for bridge. (Dustin Metzgar) 6d86254 Moved bridge and WcfService to a tools directory so they don't interfere with the rest of the build. (Dustin Metzgar) 919ec9c Fixes for the rest of the tests that were broken by using the bridge (Dustin Metzgar) ade7d15 Client.ClientBase and Client.TypedClient tests fixed (Dustin Metzgar) d1879a6 Fixing build message (Dustin Metzgar) b27bea2 Nuget package restore doesn't work from build.cmd since that's VS only. Adding a step in dirs.targets to do this. (Dustin Metzgar) 8f3b582 Only applies xunit option to turn off parallelization for OuterLoop tests (Dustin Metzgar) 45c4748 Newtonsoft.Json added to project.lock.json files (Dustin Metzgar) 527997a Updates to NuGet packages so restore works correctly (Dustin Metzgar) 24e612c Cleaning up files without ending newlines, removing assemblyinfos, working on nuget package restore. (Dustin Metzgar) a1b4099 Build.cmd fixes (Dustin Metzgar) 304517a Removing unused files from WcfService project (Dustin Metzgar) a6fa62b using cleanup (Dustin Metzgar) 5da2776 Renamed BridgeTestFixture to BridgeClient (Dustin Metzgar) c0f7b1b TestCategories needs to be set before dir.props is included so that xunit options are set correctly (Dustin Metzgar) bbdb966 Only applies xunit option to turn off parallelization for OuterLoop tests (Dustin Metzgar) 69f5233 Newtonsoft.Json added to project.lock.json files (Dustin Metzgar) 9366ab2 Updates to NuGet packages so restore works correctly (Dustin Metzgar) f89c4cc Cleaning up files without ending newlines, removing assemblyinfos, working on nuget package restore. (Dustin Metzgar) 72c14ee Build.cmd fixes (Dustin Metzgar) 36d4c67 Dynamic invoke should look for Get/Put, not GET/PUT. (Dustin Metzgar) a8bbf93 Changed GET/PUT to Get/Put (Dustin Metzgar) 47462f1 Removing bridge dependency from BaseAddress. Changing resource methods from GET/PUT to Get/Put. (Dustin Metzgar) 09fcf75 Removed nuget.exe and nuget.exe.config since there should be no need to check in binaries. (Dustin Metzgar) dcbedb4 Changed BridgeTestFixture into static class since class fixtures may not be supported in ToF. Converted the rest of the outer loop test projects to use the new test.props and test.targets. Replaced all addresses (except for Fiddler) with URLs pulled from the bridge. (Dustin Metzgar) 26679d4 Added encoders tests, which includes a tcp endpoint. (Dustin Metzgar) 21ac3da Didn't see that these files were not being tracked with the last commit. (Dustin Metzgar) ecad13c Port number no longer passed into PUT on the resource. Converted some other tests over. Moved properties and after build target to separate .props and .targets files to reduce the copied code in test .csproj files. (Dustin Metzgar) 5a93048 Adding the bridge and simplifying its use in tests. (Dustin Metzgar) a70ee8c Bridge test changes (Dustin Metzgar) 8c3fc8c Fixing build message (Dustin Metzgar) 789ff2e Nuget package restore doesn't work from build.cmd since that's VS only. Adding a step in dirs.targets to do this. (Dustin Metzgar) d59346e Removing unused files from WcfService project (Dustin Metzgar) b4cc235 using cleanup (Dustin Metzgar) 966e30e Renamed BridgeTestFixture to BridgeClient (Dustin Metzgar)
4a9f860 Moved bridgeclient.cs (Dustin Metzgar) 1e1d9f2 Fixes for package references now that bridge has moved (Dustin Metzgar) 1431f2d Adding Newtonsoft.Json to project.lock.json files for the tests. (Dustin Metzgar) a6784c6 Updated build directories for bridge. (Dustin Metzgar) 6d86254 Moved bridge and WcfService to a tools directory so they don't interfere with the rest of the build. (Dustin Metzgar) 919ec9c Fixes for the rest of the tests that were broken by using the bridge (Dustin Metzgar) ade7d15 Client.ClientBase and Client.TypedClient tests fixed (Dustin Metzgar) d1879a6 Fixing build message (Dustin Metzgar) b27bea2 Nuget package restore doesn't work from build.cmd since that's VS only. Adding a step in dirs.targets to do this. (Dustin Metzgar) 8f3b582 Only applies xunit option to turn off parallelization for OuterLoop tests (Dustin Metzgar) 45c4748 Newtonsoft.Json added to project.lock.json files (Dustin Metzgar) 527997a Updates to NuGet packages so restore works correctly (Dustin Metzgar) 24e612c Cleaning up files without ending newlines, removing assemblyinfos, working on nuget package restore. (Dustin Metzgar) a1b4099 Build.cmd fixes (Dustin Metzgar) 304517a Removing unused files from WcfService project (Dustin Metzgar) a6fa62b using cleanup (Dustin Metzgar) 5da2776 Renamed BridgeTestFixture to BridgeClient (Dustin Metzgar) c0f7b1b TestCategories needs to be set before dir.props is included so that xunit options are set correctly (Dustin Metzgar) bbdb966 Only applies xunit option to turn off parallelization for OuterLoop tests (Dustin Metzgar) 69f5233 Newtonsoft.Json added to project.lock.json files (Dustin Metzgar) 9366ab2 Updates to NuGet packages so restore works correctly (Dustin Metzgar) f89c4cc Cleaning up files without ending newlines, removing assemblyinfos, working on nuget package restore. (Dustin Metzgar) 72c14ee Build.cmd fixes (Dustin Metzgar) 36d4c67 Dynamic invoke should look for Get/Put, not GET/PUT. (Dustin Metzgar) a8bbf93 Changed GET/PUT to Get/Put (Dustin Metzgar) 47462f1 Removing bridge dependency from BaseAddress. Changing resource methods from GET/PUT to Get/Put. (Dustin Metzgar) 09fcf75 Removed nuget.exe and nuget.exe.config since there should be no need to check in binaries. (Dustin Metzgar) dcbedb4 Changed BridgeTestFixture into static class since class fixtures may not be supported in ToF. Converted the rest of the outer loop test projects to use the new test.props and test.targets. Replaced all addresses (except for Fiddler) with URLs pulled from the bridge. (Dustin Metzgar) 26679d4 Added encoders tests, which includes a tcp endpoint. (Dustin Metzgar) 21ac3da Didn't see that these files were not being tracked with the last commit. (Dustin Metzgar) ecad13c Port number no longer passed into PUT on the resource. Converted some other tests over. Moved properties and after build target to separate .props and .targets files to reduce the copied code in test .csproj files. (Dustin Metzgar) 5a93048 Adding the bridge and simplifying its use in tests. (Dustin Metzgar) a70ee8c Bridge test changes (Dustin Metzgar) 8c3fc8c Fixing build message (Dustin Metzgar) 789ff2e Nuget package restore doesn't work from build.cmd since that's VS only. Adding a step in dirs.targets to do this. (Dustin Metzgar) d59346e Removing unused files from WcfService project (Dustin Metzgar) b4cc235 using cleanup (Dustin Metzgar) 966e30e Renamed BridgeTestFixture to BridgeClient (Dustin Metzgar)
4a9f860 Moved bridgeclient.cs (Dustin Metzgar) 1e1d9f2 Fixes for package references now that bridge has moved (Dustin Metzgar) 1431f2d Adding Newtonsoft.Json to project.lock.json files for the tests. (Dustin Metzgar) a6784c6 Updated build directories for bridge. (Dustin Metzgar) 6d86254 Moved bridge and WcfService to a tools directory so they don't interfere with the rest of the build. (Dustin Metzgar) 919ec9c Fixes for the rest of the tests that were broken by using the bridge (Dustin Metzgar) ade7d15 Client.ClientBase and Client.TypedClient tests fixed (Dustin Metzgar) d1879a6 Fixing build message (Dustin Metzgar) b27bea2 Nuget package restore doesn't work from build.cmd since that's VS only. Adding a step in dirs.targets to do this. (Dustin Metzgar) 8f3b582 Only applies xunit option to turn off parallelization for OuterLoop tests (Dustin Metzgar) 45c4748 Newtonsoft.Json added to project.lock.json files (Dustin Metzgar) 527997a Updates to NuGet packages so restore works correctly (Dustin Metzgar) 24e612c Cleaning up files without ending newlines, removing assemblyinfos, working on nuget package restore. (Dustin Metzgar) a1b4099 Build.cmd fixes (Dustin Metzgar) 304517a Removing unused files from WcfService project (Dustin Metzgar) a6fa62b using cleanup (Dustin Metzgar) 5da2776 Renamed BridgeTestFixture to BridgeClient (Dustin Metzgar) c0f7b1b TestCategories needs to be set before dir.props is included so that xunit options are set correctly (Dustin Metzgar) bbdb966 Only applies xunit option to turn off parallelization for OuterLoop tests (Dustin Metzgar) 69f5233 Newtonsoft.Json added to project.lock.json files (Dustin Metzgar) 9366ab2 Updates to NuGet packages so restore works correctly (Dustin Metzgar) f89c4cc Cleaning up files without ending newlines, removing assemblyinfos, working on nuget package restore. (Dustin Metzgar) 72c14ee Build.cmd fixes (Dustin Metzgar) 36d4c67 Dynamic invoke should look for Get/Put, not GET/PUT. (Dustin Metzgar) a8bbf93 Changed GET/PUT to Get/Put (Dustin Metzgar) 47462f1 Removing bridge dependency from BaseAddress. Changing resource methods from GET/PUT to Get/Put. (Dustin Metzgar) 09fcf75 Removed nuget.exe and nuget.exe.config since there should be no need to check in binaries. (Dustin Metzgar) dcbedb4 Changed BridgeTestFixture into static class since class fixtures may not be supported in ToF. Converted the rest of the outer loop test projects to use the new test.props and test.targets. Replaced all addresses (except for Fiddler) with URLs pulled from the bridge. (Dustin Metzgar) 26679d4 Added encoders tests, which includes a tcp endpoint. (Dustin Metzgar) 21ac3da Didn't see that these files were not being tracked with the last commit. (Dustin Metzgar) ecad13c Port number no longer passed into PUT on the resource. Converted some other tests over. Moved properties and after build target to separate .props and .targets files to reduce the copied code in test .csproj files. (Dustin Metzgar) 5a93048 Adding the bridge and simplifying its use in tests. (Dustin Metzgar) a70ee8c Bridge test changes (Dustin Metzgar) 8c3fc8c Fixing build message (Dustin Metzgar) 789ff2e Nuget package restore doesn't work from build.cmd since that's VS only. Adding a step in dirs.targets to do this. (Dustin Metzgar) d59346e Removing unused files from WcfService project (Dustin Metzgar) b4cc235 using cleanup (Dustin Metzgar) 966e30e Renamed BridgeTestFixture to BridgeClient (Dustin Metzgar)
4a9f860 Moved bridgeclient.cs (Dustin Metzgar) 1e1d9f2 Fixes for package references now that bridge has moved (Dustin Metzgar) 1431f2d Adding Newtonsoft.Json to project.lock.json files for the tests. (Dustin Metzgar) a6784c6 Updated build directories for bridge. (Dustin Metzgar) 6d86254 Moved bridge and WcfService to a tools directory so they don't interfere with the rest of the build. (Dustin Metzgar) 919ec9c Fixes for the rest of the tests that were broken by using the bridge (Dustin Metzgar) ade7d15 Client.ClientBase and Client.TypedClient tests fixed (Dustin Metzgar) d1879a6 Fixing build message (Dustin Metzgar) b27bea2 Nuget package restore doesn't work from build.cmd since that's VS only. Adding a step in dirs.targets to do this. (Dustin Metzgar) 8f3b582 Only applies xunit option to turn off parallelization for OuterLoop tests (Dustin Metzgar) 45c4748 Newtonsoft.Json added to project.lock.json files (Dustin Metzgar) 527997a Updates to NuGet packages so restore works correctly (Dustin Metzgar) 24e612c Cleaning up files without ending newlines, removing assemblyinfos, working on nuget package restore. (Dustin Metzgar) a1b4099 Build.cmd fixes (Dustin Metzgar) 304517a Removing unused files from WcfService project (Dustin Metzgar) a6fa62b using cleanup (Dustin Metzgar) 5da2776 Renamed BridgeTestFixture to BridgeClient (Dustin Metzgar) c0f7b1b TestCategories needs to be set before dir.props is included so that xunit options are set correctly (Dustin Metzgar) bbdb966 Only applies xunit option to turn off parallelization for OuterLoop tests (Dustin Metzgar) 69f5233 Newtonsoft.Json added to project.lock.json files (Dustin Metzgar) 9366ab2 Updates to NuGet packages so restore works correctly (Dustin Metzgar) f89c4cc Cleaning up files without ending newlines, removing assemblyinfos, working on nuget package restore. (Dustin Metzgar) 72c14ee Build.cmd fixes (Dustin Metzgar) 36d4c67 Dynamic invoke should look for Get/Put, not GET/PUT. (Dustin Metzgar) a8bbf93 Changed GET/PUT to Get/Put (Dustin Metzgar) 47462f1 Removing bridge dependency from BaseAddress. Changing resource methods from GET/PUT to Get/Put. (Dustin Metzgar) 09fcf75 Removed nuget.exe and nuget.exe.config since there should be no need to check in binaries. (Dustin Metzgar) dcbedb4 Changed BridgeTestFixture into static class since class fixtures may not be supported in ToF. Converted the rest of the outer loop test projects to use the new test.props and test.targets. Replaced all addresses (except for Fiddler) with URLs pulled from the bridge. (Dustin Metzgar) 26679d4 Added encoders tests, which includes a tcp endpoint. (Dustin Metzgar) 21ac3da Didn't see that these files were not being tracked with the last commit. (Dustin Metzgar) ecad13c Port number no longer passed into PUT on the resource. Converted some other tests over. Moved properties and after build target to separate .props and .targets files to reduce the copied code in test .csproj files. (Dustin Metzgar) 5a93048 Adding the bridge and simplifying its use in tests. (Dustin Metzgar) a70ee8c Bridge test changes (Dustin Metzgar) 8c3fc8c Fixing build message (Dustin Metzgar) 789ff2e Nuget package restore doesn't work from build.cmd since that's VS only. Adding a step in dirs.targets to do this. (Dustin Metzgar) d59346e Removing unused files from WcfService project (Dustin Metzgar) b4cc235 using cleanup (Dustin Metzgar) 966e30e Renamed BridgeTestFixture to BridgeClient (Dustin Metzgar)
4a9f860 Moved bridgeclient.cs (Dustin Metzgar) 1e1d9f2 Fixes for package references now that bridge has moved (Dustin Metzgar) 1431f2d Adding Newtonsoft.Json to project.lock.json files for the tests. (Dustin Metzgar) a6784c6 Updated build directories for bridge. (Dustin Metzgar) 6d86254 Moved bridge and WcfService to a tools directory so they don't interfere with the rest of the build. (Dustin Metzgar) 919ec9c Fixes for the rest of the tests that were broken by using the bridge (Dustin Metzgar) ade7d15 Client.ClientBase and Client.TypedClient tests fixed (Dustin Metzgar) d1879a6 Fixing build message (Dustin Metzgar) b27bea2 Nuget package restore doesn't work from build.cmd since that's VS only. Adding a step in dirs.targets to do this. (Dustin Metzgar) 8f3b582 Only applies xunit option to turn off parallelization for OuterLoop tests (Dustin Metzgar) 45c4748 Newtonsoft.Json added to project.lock.json files (Dustin Metzgar) 527997a Updates to NuGet packages so restore works correctly (Dustin Metzgar) 24e612c Cleaning up files without ending newlines, removing assemblyinfos, working on nuget package restore. (Dustin Metzgar) a1b4099 Build.cmd fixes (Dustin Metzgar) 304517a Removing unused files from WcfService project (Dustin Metzgar) a6fa62b using cleanup (Dustin Metzgar) 5da2776 Renamed BridgeTestFixture to BridgeClient (Dustin Metzgar) c0f7b1b TestCategories needs to be set before dir.props is included so that xunit options are set correctly (Dustin Metzgar) bbdb966 Only applies xunit option to turn off parallelization for OuterLoop tests (Dustin Metzgar) 69f5233 Newtonsoft.Json added to project.lock.json files (Dustin Metzgar) 9366ab2 Updates to NuGet packages so restore works correctly (Dustin Metzgar) f89c4cc Cleaning up files without ending newlines, removing assemblyinfos, working on nuget package restore. (Dustin Metzgar) 72c14ee Build.cmd fixes (Dustin Metzgar) 36d4c67 Dynamic invoke should look for Get/Put, not GET/PUT. (Dustin Metzgar) a8bbf93 Changed GET/PUT to Get/Put (Dustin Metzgar) 47462f1 Removing bridge dependency from BaseAddress. Changing resource methods from GET/PUT to Get/Put. (Dustin Metzgar) 09fcf75 Removed nuget.exe and nuget.exe.config since there should be no need to check in binaries. (Dustin Metzgar) dcbedb4 Changed BridgeTestFixture into static class since class fixtures may not be supported in ToF. Converted the rest of the outer loop test projects to use the new test.props and test.targets. Replaced all addresses (except for Fiddler) with URLs pulled from the bridge. (Dustin Metzgar) 26679d4 Added encoders tests, which includes a tcp endpoint. (Dustin Metzgar) 21ac3da Didn't see that these files were not being tracked with the last commit. (Dustin Metzgar) ecad13c Port number no longer passed into PUT on the resource. Converted some other tests over. Moved properties and after build target to separate .props and .targets files to reduce the copied code in test .csproj files. (Dustin Metzgar) 5a93048 Adding the bridge and simplifying its use in tests. (Dustin Metzgar) a70ee8c Bridge test changes (Dustin Metzgar) 8c3fc8c Fixing build message (Dustin Metzgar) 789ff2e Nuget package restore doesn't work from build.cmd since that's VS only. Adding a step in dirs.targets to do this. (Dustin Metzgar) d59346e Removing unused files from WcfService project (Dustin Metzgar) b4cc235 using cleanup (Dustin Metzgar) 966e30e Renamed BridgeTestFixture to BridgeClient (Dustin Metzgar)
Fixed by 3cadc82 |
The goal of this item is to come up with a definition of how tests would communicate out of the xUnit runner. The proposed set of guiding principles here are
As an example
Looping in folks for thoughts and elaborating further.
@StephenBonikowsky @roncain @iamjasonp
The text was updated successfully, but these errors were encountered: