From e0a27a34fc5dde86383d552cd62915aa6f4d22dc Mon Sep 17 00:00:00 2001 From: Jon Sequeira Date: Fri, 19 Apr 2024 14:08:52 -0700 Subject: [PATCH 1/2] update dev guide and peaky test notebook --- Developer-guide.ipynb | 296 ++++++++++++-------- PeakyTests.ipynb | 626 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 802 insertions(+), 120 deletions(-) diff --git a/Developer-guide.ipynb b/Developer-guide.ipynb index 2c3a02a5c..2c41bcb8f 100644 --- a/Developer-guide.ipynb +++ b/Developer-guide.ipynb @@ -4,12 +4,27 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## step 1: Set paths for dotnet-interactive and try projects" + "# Building .NET Interactive [Optional]\n", + "\n", + "The core functionality in Try .NET is the .NET Interactive repo, which contains the `CSharpProjectKernel` that powers Try .NET's compilation and language services. \n", + "\n", + "* If you're making changes in that layer, then you'll need to build the .NET Interactive packages locally. \n", + "\n", + "* If not, skip to step 2.1." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1.1: Clone and build .NET Interactive\n", + "\n", + "First, make sure you have the [.NET Interactive repo](https://github.com/dotnet/interactive) forked and cloned. Set the path to the repo root in the following cell. \n" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "dotnet_interactive": { "language": "pwsh" @@ -20,17 +35,19 @@ }, "outputs": [], "source": [ - "$dotnetInteractivePath=\"D:\\microsoft\\dotnet\\interactive\"\n", - "$tryDotnetPath=\"D:\\microsoft\\dotnet\\try\"\n", - "$monacoEditorProject=\"$tryDotnetPath\\src\\Microsoft.TryDotNet\"\n", - "$mockMsLearnServer=\"$tryDotnetPath\\src\\microsoft-learn-mock\"" + "$dotnetInteractiveRepoPath = Read-Host -Prompt \"Enter the path to the root of your dotnet/interactive clone\"\n", + "$dotnetInteractiveRepoPath" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## step 2: Build Javascript projects" + "Follow the instructions to build .NET Interactive in the [developer guide](https://github.com/dotnet/interactive/blob/main/DEVELOPER-GUIDE.md). \n", + "\n", + "You don't need to set up a local build of the Polyglot Notebooks extension to work on Try .NET.\n", + "\n", + "The following script will build the project and copy the generated packages to C:\\temp\\packages\\ which will be be used a NuGet package source when building Try .NET." ] }, { @@ -46,21 +63,33 @@ }, "outputs": [], "source": [ - "Set-Location -Path $dotnetInteractivePath\n", - "\n", - "if ($IsWindows) {\n", - " Invoke-Expression \"$dotnetInteractivePath\\build-js.cmd\"\n", - "}else {\n", - " Invoke-Expression \"$dotnetInteractivePath\\build-js.sh\"\n", - "}" + "Invoke-Expression \"$dotnetInteractiveRepoPath/repack.ps1\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## step 3: Create the NuGet package CSharpProject\n", - "The following script will copy the generated packages into from C:\\temp\\packages\\" + "## 2.1: Clone and build Try .NET" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "dotnet_interactive": { + "language": "pwsh" + }, + "polyglot_notebook": { + "kernelName": "pwsh" + } + }, + "outputs": [], + "source": [ + "$tryDotnetRepoPath = Get-Location\n", + "\n", + "$tryDotNetProjectFilePath=\"$tryDotnetRepoPath\\src\\Microsoft.TryDotNet\\Microsoft.TryDotNet.csproj\"\n", + "$mockMsLearnServerPath=\"$tryDotnetRepoPath\\src\\microsoft-learn-mock\"" ] }, { @@ -76,21 +105,29 @@ }, "outputs": [], "source": [ - "Set-Location -Path $dotnetInteractivePath\n", + "if ($IsWindows) {\n", + " Invoke-Expression \"$tryDotnetRepoPath\\build-js.cmd\"\n", + "}else {\n", + " Invoke-Expression \"$tryDotnetRepoPath/build-js.sh\"\n", + "}\n", "\n", - "Invoke-Expression \".\\repack.ps1\"" + "dotnet build" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## step 4: Create a new NuGet Feed in try dotnet pointing to this path" + "## 2.2: [Optional] Update Microsoft.DotNet.Interactive.CSharpProject version used by Try .NET\n", + "\n", + "This step only needs to be done if you're changing code from the .NET Interactive repo.\n", + "\n", + "This step modifies NuGet.config to reference the local package source where .NET Interactive packages build in Step 1 should be found." ] }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "metadata": { "dotnet_interactive": { "language": "pwsh" @@ -101,11 +138,7 @@ }, "outputs": [], "source": [ - "# Navigate to the directory containing the NuGet.config\n", - "Set-Location -Path $tryDotnetPath\n", - "\n", - "# Add a new package source\n", - "$nugetConfigPath = Join-Path $tryDotnetPath 'NuGet.config'\n", + "$nugetConfigPath = Join-Path $tryDotnetRepoPath 'NuGet.config'\n", "[xml]$nugetConfig = Get-Content $nugetConfigPath\n", "\n", "$newPackageSource = $nugetConfig.CreateElement(\"add\")\n", @@ -115,6 +148,15 @@ "$packageSourcesNode = $nugetConfig.SelectSingleNode('configuration/packageSources')\n", "$packageSourcesNode.AppendChild($newPackageSource) > $null\n", "\n", + "$packageMappingNode = $nugetConfig.CreateElement(\"packageSource\")\n", + "$packageMappingNode.SetAttribute(\"key\", \"temp\")\n", + "$packageNode = $nugetConfig.CreateElement(\"package\")\n", + "$packageNode.SetAttribute(\"pattern\", \"*\")\n", + "$packageMappingNode.AppendChild($packageNode) > $null\n", + "\n", + "$packageSourcesNode = $nugetConfig.SelectSingleNode('configuration/packageSourceMapping')\n", + "$packageSourcesNode.AppendChild($packageMappingNode) > $null\n", + "\n", "$nugetConfig.Save($nugetConfigPath)" ] }, @@ -122,12 +164,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## 5: Update NuGet package Microsoft.DotNet.Interactive.CSharpProject to use the one created in previous steps\n" + "Next, update the referenced version of the package." ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { "dotnet_interactive": { "language": "pwsh" @@ -139,7 +181,7 @@ "outputs": [], "source": [ "# Define the path to the Directory.Packages.props file\n", - "$packagesPropsPath = Join-Path $tryDotnetPath \"Directory.Packages.props\"\n", + "$packagesPropsPath = \"$tryDotnetRepoPath\\Directory.Packages.props\"\n", "\n", "# Load the XML content of the Directory.Packages.props file\n", "[xml]$packagesProps = Get-Content $packagesPropsPath\n", @@ -177,41 +219,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## 6: Build trydotnet.js which handles events from Monaco Editor" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "dotnet_interactive": { - "language": "pwsh" - }, - "polyglot_notebook": { - "kernelName": "pwsh" - } - }, - "outputs": [], - "source": [ - "Set-Location -Path $tryDotnetPath\n", + "## 2.3: Start the Try .NET service\n", "\n", - "if ($IsWindows) {\n", - " Invoke-Expression \"$tryDotnetPath\\build-js.cmd\"\n", - "}else {\n", - " Invoke-Expression \"$tryDotnetPath\\build-js.sh\"\n", - "}" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## step 7: Build of trydotnet service" + "This launches the Try .NET web service. It will launch in a separate terminal window. Closing that window will stop the server." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "dotnet_interactive": { "language": "pwsh" @@ -222,16 +237,14 @@ }, "outputs": [], "source": [ - "Set-Location -Path $tryDotnetPath\n", - "\n", - "Invoke-Expression \"$tryDotnetPath\\build.cmd\"" + "Start-Process pwsh -ArgumentList \"-c dotnet run --no-build --project ${tryDotNetProjectFilePath} --launch-profile TryDotNet-Development\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## step 8: Run the Mocaco Editor" + "## 2.5: [One time only] Build MS Learn mock server" ] }, { @@ -247,68 +260,139 @@ }, "outputs": [], "source": [ - "Set-Location -Path $monacoEditorProject\n", - "\n", - "## This will launch the editor at https://localhost:7061/editor\n", - "dotnet run --no-build --project \"Microsoft.TryDotNet.csproj\" --configuration Release --launch-profile \"Microsoft.TryDotNet\"" + "Set-Location -Path $mockMsLearnServerPath\n", + "npm ci\n", + "npm run buildProd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## step 9: Verify Monaco Editor is running" + "## 2.4: Verify Try .NET by running Peaky tests" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "dotnet_interactive": { - "language": "pwsh" + "language": "csharp" }, "polyglot_notebook": { - "kernelName": "pwsh" + "kernelName": "csharp" } }, - "outputs": [], - "source": [ - "# Open the default web browser at the given URL\n", - "Start-Process \"https://localhost:7061/editor\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## step 10: Build the mock project that represents MS Learn server" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "dotnet_interactive": { - "language": "pwsh" + "outputs": [ + { + "data": { + "text/html": [ + "
Installed Packages
  • Peaky.Client, 4.0.79
" + ] + }, + "metadata": {}, + "output_type": "display_data" }, - "polyglot_notebook": { - "kernelName": "pwsh" + { + "data": { + "text/html": [ + "
✅ Passed: Can_get_signature_help
\n", + " 🧪https://localhost:7061/tests/Development/trydotnet/Can_get_signature_help\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Development\n", + "
\n", + " Tags: kernel\n", + "
\n", + "
{\r\n",
+       "  "Outcome": "passed",\r\n",
+       "  "ReturnValue": null,\r\n",
+       "  "Passed": true,\r\n",
+       "  "Log": "",\r\n",
+       "  "Duration": "00:00:01.6782308",\r\n",
+       "  "Exception": null,\r\n",
+       "  "Test": {\r\n",
+       "    "Application": "trydotnet",\r\n",
+       "    "Name": "Can_get_signature_help",\r\n",
+       "    "Environment": "Development",\r\n",
+       "    "Url": "https://localhost:7061/tests/Development/trydotnet/Can_get_signature_help",\r\n",
+       "    "Tags": [\r\n",
+       "      "kernel"\r\n",
+       "    ]\r\n",
+       "  }\r\n",
+       "}
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
✅ Passed: Console_prebuild_is_ready
\n", + " 🧪https://localhost:7061/tests/Development/trydotnet/Console_prebuild_is_ready\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Development\n", + "
\n", + " Tags: kernel\n", + "
\n", + "
{\r\n",
+       "  "Outcome": "passed",\r\n",
+       "  "ReturnValue": {\r\n",
+       "    "EnableBuild": false,\r\n",
+       "    "Directory": null,\r\n",
+       "    "Name": "console",\r\n",
+       "    "EntryPointAssemblyPath": null,\r\n",
+       "    "TargetFramework": "net8.0"\r\n",
+       "  },\r\n",
+       "  "Passed": true,\r\n",
+       "  "Log": "",\r\n",
+       "  "Duration": "00:00:00.0447764",\r\n",
+       "  "Exception": null,\r\n",
+       "  "Test": {\r\n",
+       "    "Application": "trydotnet",\r\n",
+       "    "Name": "Console_prebuild_is_ready",\r\n",
+       "    "Environment": "Development",\r\n",
+       "    "Url": "https://localhost:7061/tests/Development/trydotnet/Console_prebuild_is_ready",\r\n",
+       "    "Tags": [\r\n",
+       "      "kernel"\r\n",
+       "    ]\r\n",
+       "  }\r\n",
+       "}
" + ] + }, + "metadata": {}, + "output_type": "display_data" } - }, - "outputs": [], + ], "source": [ - "Set-Location -Path $mockMsLearnServer\n", + "#r \"nuget:Peaky.Client\"\n", "\n", - "npm ci\n", + "using Peaky.Client;\n", + "using System.Net.Http;\n", "\n", - "npm run buildProd" + "var peakyClient = new PeakyClient(new Uri(\"https://localhost:7061/tests\"));\n", + "\n", + "var tests = (await peakyClient.GetTestsAsync(environment: \"Development\")) \n", + " .Where(t => t.Tags.Any(tag => tag == \"kernel\"));\n", + " \n", + "foreach (var test in tests)\n", + "{\n", + " var result = await test.GetResultAsync();\n", + " result.Display();\n", + "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## step 11: Launch the mock MS Learn server" + "## 2.5: Launch the MS Learn mock server\n", + "\n", + "This site hosts the Try .NET IFRAME and provides controls so you can see if things are working." ] }, { @@ -324,16 +408,16 @@ }, "outputs": [], "source": [ - "Set-Location -Path $mockMsLearnServer\n", + "Set-Location -Path $mockMsLearnServerPath\n", "\n", - "npx http-server -p 7063" + "Start-Process pwsh -ArgumentList \"-c npx http-server -p 7063\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## step 12: Open the mock MS Learn webpage with the editor" + "## 2.6: Open the MS Learn mock site and interact with Try .NET" ] }, { @@ -352,18 +436,6 @@ "Start-Process \"http://127.0.0.1:7063/site/DocsHost.html?trydotnetUrl=https://localhost:7061/api/trydotnet.min.js&trydotnetOrigin=https://localhost:7061/\"" ] }, - { - "attachments": { - "image.png": { - "image/png": "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AAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAsQVAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgIBO0zRNe7Brenq6qqoOHjzYnlrhnXfeaQ8BAMA1Y+fOnVVVNTQ01J6CdYvEFQAAXMsWFxerxBUbZFsgAABAgLgCAAAIEFcAAAAB4goAACBAXAEAAASIKwAAgABxBQAAECCuAAAAAmJxNT093Xv89re/bU8DAABsabG46hodHa3R0dH2MAAAwJYWjSthBQAAXK9icSWsAACA61ksru64444aGhrqPQAAAK4nsbgCAAC4nokrAACAAHEFAAAQIK4AAAACxBUAAECAuAIAAAgQVwAAAAHiCgAAIEBcAQAABIgrAACAAHEFAAAQIK4AAAACxBUAAECAuAIAAAgQVwAAAAHiCgAAIEBcAQAABIgrAACAAHEFAAAQIK4AAAACxBUAAECAuAIAAAgQVwAAAAHiCgAAIEBcAQAABIgrAACAAHEFAAAQIK4AAAACxBUAAECAuAIAAAgQVwAAAAHiCgAAIEBcAQAABIgrAACAAHEFAAAQIK4AAAACxBUAAECAuAIAAAgQVwAAAAHiCgAAIEBcAQAABIgrAACAAHEFAAAQIK4AAAACxBUAAECAuAIAAAgQVwAAAAHiCgAAIEBcAQAABIgrAACAAHEFAAAQIK4AAAACxBUAAECAuAIAAAgQVwAAAAHiCgAAIEBcAQAABIgrAACAAHEFAAAQ0GmapmkPdk1PT1dV1f3339+eAgCALeOjjz6qqqqhoaH2FKyblSsAAICAq7Zy9fvf/749BACwpX3hC19oD7FJWbkiwcoVAABAgLgCAAAIiMXVG2+80R4CAIBP1EMPPdQegismElfCCgCAzUpgcbVsOK6EFQAAm53A4mrYUFwJKwAArhUCiyttQ3F19913t4cAAGBT+uUvf9kegqgNxVUJLAAArgHCiqthw3FVAgsAgE1MWHG1ROKqBBYAAJuQsOJqisUVAADA9UxcAQAABHSapmnag13T09NVVXX//fe3pwAAYMv46KOPqqpqaGioPQXrZuUKAAAg4JIrV6OjozU6OtqeAgCALcfKFRux5sqVsAIAAFifNVeuAAAAWJ81V64AAABYH3EFAAAQIK4AAAACxBUAAECAuAIAAAgQVwAAAAHiCgAAIEBcAQAABIgrAACAAHEFAAAQIK4AAAACxBUAAECAuAIAAAgQVwAAAAHiCgAAIEBcAQAABIgrAACAAHEFAAAQIK4AAAACxBUAAECAuAIAAAgQVwAAAAHiCgAAIEBcAQAABIgrAACAAHEFAAAQIK4AAAACLiuu5p7pVKdz4WP86EL7qR/LwtHDNXOuPXplXM1rAQAAW9/64urcTI13OrXnqap6+mQ1TbP8OF9H9lfNTmyrTmd8Y7Fybqb+YeJMe/TKuJrXAgAArguXjqtzMzV+04Gararaf6TOP7l7YHK4Jl5dCqyq2Tpw0+GaG5hdt8FrXGlX81oAAMB145JxNfdyP0Smvj1Rw635quHae8/Y8r8na88zc1W1UDP3DWwdfGauqubq8GpbCU8drk4vdmbrwE2dpVWw00urZf3nz6x4/eFT3esHrrWRFTcAAIBLxtW5mXr+qe4PYzWyfeV01/DIrv4PT52ouRquiVdP1tTgk2p3HXr/SHUzrGth+yN1fqY7OlZH3m+qaY7VxG0TdWyu/xtmJ+Zrb9NUszw2ubsbRYFrXeS+AAAA1mvtuFqv7SMDIXOm5i9jJWh4+4VrYT0Dv3ds5pHaXVV1+97lkJqtAy9f3ibENa8FAACwAZm4uqpGamT/8j//OF+ZcwoBAAA2Zu242j5SAxv+Lu7c/MABEbsuun0QAABgq1o7rmp37X26++/Zi273W5jvH2ve274HAABwHblEXFXtfrh/MMTkj2dW2YY3Vy9N9M4TrMceuNKfa5qv+deW//n5kVVOLwQAALj6LhlXtX2ijnVP3nvtQG17ZvAQiYWauW9PTVZV1VSdbA4NrFpd+NmowWPdB604bbCq5o5eGHGzEy8tfYfWuflaWicbqyMPd6+WvRYAAMDlunRc1XJgNc3SMeZP7el/p1RnWx14rWpqrqlmRVjV0hHpPx6Isk6nTtzcXwWbndjW/66q2w/Vyaer991TJ0Yu/D6tsZmROtHp9L6nampu8Aj17LUAAAAuV6dpmqY9uGmcm6nx5Zgamzlfx674lkMAAICPZ30rVwAAAKxpc8fViiPeAQAANq/NG1fnZmp899JRGbX8uanOfQ6fAAAANqfN/ZkrAACAa8TmXbkCAAC4hogrAACAAHEFAAAQIK4AAAACxBUAAECAuAIAAAgQVwAAAAHiCgAAIEBcAQAABIgrAACAAHEFAAAQIK4AAAACxBUAAECAuAIAAAgQVwAAAAHiCgAAIEBcAQAABIgrAACAAHEFAAAQIK4AAAACxBUAAECAuAIAAAgQVwAAAAHiCgAAIEBcAQAABIgrAACAAHEFAAAQIK4AAAACxBUAAEDA+uLq1OHqdDo1fnShPVNVc3W406nOfTO12iwAAMD1YH1xBQAAwJo6TdM07UEAAAAuj5UrAACAAHEFAAAQIK4AAAACxBUAAECAuAIAAAgQVwAAAAHiCgAAIEBcAQAABIgrAACAAHEFAAAQIK4AAAACxBUAAECAuAIAAAgQVwAAAAHiCgAAIEBcAQAABIgrAACAAHEFAAAQIK4AAAACxBUAAECAuAIAAAgQVwAAAAHiCgAAIEBcAQAABIgrAACAAHEFAAAQIK4AAAACxBUAAECAuAIAAAgQVwAAAAHiCgAAIEBcAQAABIgrAACAAHEFAAAQIK4AAAACxBUAAECAuAIAAAgQVwAAAAHiCgAAIEBcAQAABIgrAACAAHEFAAAQIK4AAAACxBUAAECAuAIAAAgQVwAAAAHiCgAAIEBcAQAABIgrAACAAHEFAAAQIK4AAAACxBUAAEDA/wfWFvhJqth3uwAAAABJRU5ErkJggg==" - } - }, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "![image.png](attachment:image.png)" - ] - }, { "cell_type": "markdown", "metadata": {}, diff --git a/PeakyTests.ipynb b/PeakyTests.ipynb index 75a0b67dc..1d878d268 100644 --- a/PeakyTests.ipynb +++ b/PeakyTests.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "dotnet_interactive": { "language": "csharp" @@ -14,19 +14,30 @@ "languageId": "polyglot-notebook" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
Installed Packages
  • Peaky.Client, 4.0.79
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "#r \"nuget:Peaky.Client\"\n", "\n", "using Peaky.Client;\n", "using System.Net.Http;\n", "\n", - "var peakyClient = new PeakyClient(new Uri(\"https://localhost:7061/tests\"));" + "// var peakyClient = new PeakyClient(new Uri(\"https://localhost:7061/tests\"));\n", + "var peakyClient = new PeakyClient(new Uri(\"https://try-ppe.dot.net/tests\"));" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "dotnet_interactive": { "language": "csharp" @@ -38,15 +49,467 @@ "languageId": "polyglot-notebook" } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "

Development (16 tests)

\r\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Development/trydotnet/A_call_to_the_default_page_returns_200\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Development\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Development/trydotnet/BundleJs_has_gzip_Content_Encoding\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Development\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Development/trydotnet/Can_get_signature_help\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Development\n", + "
\n", + " Tags: kernel\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Development/trydotnet/Compile_without_hostOrigin_returns_401\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Development\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Development/trydotnet/Compile_without_Xsrf_returns_400\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Development\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Development/trydotnet/Console_prebuild_is_ready\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Development\n", + "
\n", + " Tags: kernel\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Development/trydotnet/Editor_returns_200\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Development\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Development/trydotnet/IDE_returns_200\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Development\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Development/trydotnet/Requests_with_http_get_redirected_to_https\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Development\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Development/trydotnet/Response_headers_include_Content_Security_Policy\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Development\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Development/trydotnet/Response_headers_include_X_Content_Type_Options\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Development\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Development\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Development\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_without_hostOrigin_returns_401\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Development\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_without_Xsrf_returns_401\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Development\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Development/trydotnet/Version_sensor_returns_200\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Development\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\r\n", + "
\n", + "

Production (16 tests)

\r\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Production/trydotnet/A_call_to_the_default_page_returns_200\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Production\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Production/trydotnet/BundleJs_has_gzip_Content_Encoding\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Production\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Production/trydotnet/Can_get_signature_help\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Production\n", + "
\n", + " Tags: kernel\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Production/trydotnet/Compile_without_hostOrigin_returns_401\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Production\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Production/trydotnet/Compile_without_Xsrf_returns_400\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Production\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Production/trydotnet/Console_prebuild_is_ready\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Production\n", + "
\n", + " Tags: kernel\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Production/trydotnet/Editor_returns_200\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Production\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Production/trydotnet/IDE_returns_200\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Production\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Production/trydotnet/Requests_with_http_get_redirected_to_https\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Production\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Production/trydotnet/Response_headers_include_Content_Security_Policy\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Production\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Production/trydotnet/Response_headers_include_X_Content_Type_Options\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Production\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Production\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Production\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_without_hostOrigin_returns_401\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Production\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_without_Xsrf_returns_401\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Production\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Production/trydotnet/Version_sensor_returns_200\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Production\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\r\n", + "
\n", + "

Staging (16 tests)

\r\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Staging/trydotnet/A_call_to_the_default_page_returns_200\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Staging\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Staging/trydotnet/BundleJs_has_gzip_Content_Encoding\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Staging\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Staging/trydotnet/Can_get_signature_help\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Staging\n", + "
\n", + " Tags: kernel\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Staging/trydotnet/Compile_without_hostOrigin_returns_401\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Staging\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Staging/trydotnet/Compile_without_Xsrf_returns_400\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Staging\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Staging/trydotnet/Console_prebuild_is_ready\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Staging\n", + "
\n", + " Tags: kernel\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Staging/trydotnet/Editor_returns_200\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Staging\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Staging/trydotnet/IDE_returns_200\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Staging\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Staging/trydotnet/Requests_with_http_get_redirected_to_https\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Staging\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Staging/trydotnet/Response_headers_include_Content_Security_Policy\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Staging\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Staging/trydotnet/Response_headers_include_X_Content_Type_Options\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Staging\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Staging\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Staging\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_without_hostOrigin_returns_401\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Staging\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_without_Xsrf_returns_401\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Staging\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\n", + " 🧪http://try-ppe.dot.net/tests/Staging/trydotnet/Version_sensor_returns_200\n", + "
\n", + " Application: trydotnet\n", + "
\n", + " Environment: Staging\n", + "
\n", + " Tags: deployment\n", + "
\n", + "
\r\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "var tests = await peakyClient.GetTestsAsync();\n", + "var tests = (await peakyClient.GetTestsAsync( )) \n", + " // .Where(t => t.Tags.Any(tag => tag == \"kernel\"))\n", + " ;\n", "tests.Display();" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "dotnet_interactive": { "language": "csharp" @@ -58,7 +521,26 @@ "languageId": "polyglot-notebook" } }, - "outputs": [], + "outputs": [ + { + "ename": "Error", + "evalue": "Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.\r\n at Newtonsoft.Json.JsonTextReader.ParseValue()\r\n at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)\r\n at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)\r\n at Newtonsoft.Json.Linq.JObject.Parse(String json)\r\n at Peaky.Client.TestResult..ctor(String content, TestOutcome outcome, PeakyClient client)\r\n at Peaky.Client.PeakyClient.GetTestResultAsync(Uri url)\r\n at Peaky.Client.Test.GetResultAsync()\r\n at Submission#10.<>d__0.MoveNext()\r\n--- End of stack trace from previous location ---\r\n at Microsoft.CodeAnalysis.Scripting.ScriptExecutionState.RunSubmissionsAsync[TResult](ImmutableArray`1 precedingExecutors, Func`2 currentExecutor, StrongBox`1 exceptionHolderOpt, Func`2 catchExceptionOpt, CancellationToken cancellationToken)", + "output_type": "error", + "traceback": [ + "Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.\r\n", + " at Newtonsoft.Json.JsonTextReader.ParseValue()\r\n", + " at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)\r\n", + " at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)\r\n", + " at Newtonsoft.Json.Linq.JObject.Parse(String json)\r\n", + " at Peaky.Client.TestResult..ctor(String content, TestOutcome outcome, PeakyClient client)\r\n", + " at Peaky.Client.PeakyClient.GetTestResultAsync(Uri url)\r\n", + " at Peaky.Client.Test.GetResultAsync()\r\n", + " at Submission#10.<>d__0.MoveNext()\r\n", + "--- End of stack trace from previous location ---\r\n", + " at Microsoft.CodeAnalysis.Scripting.ScriptExecutionState.RunSubmissionsAsync[TResult](ImmutableArray`1 precedingExecutors, Func`2 currentExecutor, StrongBox`1 exceptionHolderOpt, Func`2 catchExceptionOpt, CancellationToken cancellationToken)" + ] + } + ], "source": [ "foreach (var test in tests)\n", "{\n", @@ -66,6 +548,134 @@ " result.Display();\n", "}" ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "dotnet_interactive": { + "language": "http" + }, + "polyglot_notebook": { + "kernelName": "http" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "

Request


GET https://try-ppe.dot.net/tests HTTP/1.1

Headers
NameValue
traceparent00-9d6330359b3cb0fcd487787ae12f3907-47ff2d4c6bd8ccae-00
Body (0 bytes)

Response


HTTP/1.1 200 OK (238.83 ms)

Headers
NameValue
DateThu, 18 Apr 2024 18:31:59 GMT
Transfer-Encodingchunked
Connectionkeep-alive
x-azure-ref20240418T183158Z-16c8f98878dzjdhmedy1ns0qb000000002u000000001bn6u
X-CacheCONFIG_NOCACHE
Content-Length11077
Body (11077 bytes)
{"Tests":[{"Application":"trydotnet","Environment":"Development","Name":"A_call_to_the_default_page_returns_200","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/A_call_to_the_default_page_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"BundleJs_has_gzip_Content_Encoding","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/BundleJs_has_gzip_Content_Encoding","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Can_get_signature_help","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Can_get_signature_help","Tags":["kernel"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Compile_without_hostOrigin_returns_401","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Compile_without_hostOrigin_returns_401","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Compile_without_Xsrf_returns_400","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Compile_without_Xsrf_returns_400","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Console_prebuild_is_ready","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Console_prebuild_is_ready","Tags":["kernel"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Editor_returns_200","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Editor_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"IDE_returns_200","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/IDE_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Requests_with_http_get_redirected_to_https","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Requests_with_http_get_redirected_to_https","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Response_headers_include_Content_Security_Policy","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Response_headers_include_Content_Security_Policy","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Response_headers_include_X_Content_Type_Options","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Response_headers_include_X_Content_Type_Options","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Snippet_without_hostOrigin_returns_401","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_without_hostOrigin_returns_401","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Snippet_without_Xsrf_returns_401","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_without_Xsrf_returns_401","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Version_sensor_returns_200","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Version_sensor_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"A_call_to_the_default_page_returns_200","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/A_call_to_the_default_page_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"BundleJs_has_gzip_Content_Encoding","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/BundleJs_has_gzip_Content_Encoding","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Can_get_signature_help","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Can_get_signature_help","Tags":["kernel"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Compile_without_hostOrigin_returns_401","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Compile_without_hostOrigin_returns_401","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Compile_without_Xsrf_returns_400","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Compile_without_Xsrf_returns_400","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Console_prebuild_is_ready","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Console_prebuild_is_ready","Tags":["kernel"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Editor_returns_200","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Editor_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"IDE_returns_200","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/IDE_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Requests_with_http_get_redirected_to_https","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Requests_with_http_get_redirected_to_https","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Response_headers_include_Content_Security_Policy","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Response_headers_include_Content_Security_Policy","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Response_headers_include_X_Content_Type_Options","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Response_headers_include_X_Content_Type_Options","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Snippet_without_hostOrigin_returns_401","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_without_hostOrigin_returns_401","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Snippet_without_Xsrf_returns_401","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_without_Xsrf_returns_401","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Version_sensor_returns_200","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Version_sensor_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"A_call_to_the_default_page_returns_200","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/A_call_to_the_default_page_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"BundleJs_has_gzip_Content_Encoding","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/BundleJs_has_gzip_Content_Encoding","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Can_get_signature_help","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Can_get_signature_help","Tags":["kernel"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Compile_without_hostOrigin_returns_401","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Compile_without_hostOrigin_returns_401","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Compile_without_Xsrf_returns_400","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Compile_without_Xsrf_returns_400","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Console_prebuild_is_ready","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Console_prebuild_is_ready","Tags":["kernel"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Editor_returns_200","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Editor_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"IDE_returns_200","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/IDE_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Requests_with_http_get_redirected_to_https","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Requests_with_http_get_redirected_to_https","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Response_headers_include_Content_Security_Policy","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Response_headers_include_Content_Security_Policy","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Response_headers_include_X_Content_Type_Options","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Response_headers_include_X_Content_Type_Options","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Snippet_without_hostOrigin_returns_401","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_without_hostOrigin_returns_401","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Snippet_without_Xsrf_returns_401","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_without_Xsrf_returns_401","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Version_sensor_returns_200","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Version_sensor_returns_200","Tags":["deployment"],"Parameters":[]}]}
Tests
[{"Application":"trydotnet","Environment":"Development","Name":"A_call_to_the_default_page_returns_200","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/A_call_to_the_default_page_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"BundleJs_has_gzip_Content_Encoding","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/BundleJs_has_gzip_Content_Encoding","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Can_get_signature_help","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Can_get_signature_help","Tags":["kernel"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Compile_without_hostOrigin_returns_401","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Compile_without_hostOrigin_returns_401","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Compile_without_Xsrf_returns_400","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Compile_without_Xsrf_returns_400","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Console_prebuild_is_ready","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Console_prebuild_is_ready","Tags":["kernel"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Editor_returns_200","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Editor_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"IDE_returns_200","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/IDE_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Requests_with_http_get_redirected_to_https","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Requests_with_http_get_redirected_to_https","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Response_headers_include_Content_Security_Policy","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Response_headers_include_Content_Security_Policy","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Response_headers_include_X_Content_Type_Options","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Response_headers_include_X_Content_Type_Options","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Snippet_without_hostOrigin_returns_401","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_without_hostOrigin_returns_401","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Snippet_without_Xsrf_returns_401","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_without_Xsrf_returns_401","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Development","Name":"Version_sensor_returns_200","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Version_sensor_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"A_call_to_the_default_page_returns_200","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/A_call_to_the_default_page_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"BundleJs_has_gzip_Content_Encoding","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/BundleJs_has_gzip_Content_Encoding","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Can_get_signature_help","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Can_get_signature_help","Tags":["kernel"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Compile_without_hostOrigin_returns_401","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Compile_without_hostOrigin_returns_401","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Compile_without_Xsrf_returns_400","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Compile_without_Xsrf_returns_400","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Console_prebuild_is_ready","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Console_prebuild_is_ready","Tags":["kernel"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Editor_returns_200","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Editor_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"IDE_returns_200","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/IDE_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Requests_with_http_get_redirected_to_https","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Requests_with_http_get_redirected_to_https","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Response_headers_include_Content_Security_Policy","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Response_headers_include_Content_Security_Policy","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Response_headers_include_X_Content_Type_Options","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Response_headers_include_X_Content_Type_Options","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Snippet_without_hostOrigin_returns_401","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_without_hostOrigin_returns_401","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Snippet_without_Xsrf_returns_401","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_without_Xsrf_returns_401","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Production","Name":"Version_sensor_returns_200","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Version_sensor_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"A_call_to_the_default_page_returns_200","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/A_call_to_the_default_page_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"BundleJs_has_gzip_Content_Encoding","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/BundleJs_has_gzip_Content_Encoding","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Can_get_signature_help","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Can_get_signature_help","Tags":["kernel"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Compile_without_hostOrigin_returns_401","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Compile_without_hostOrigin_returns_401","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Compile_without_Xsrf_returns_400","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Compile_without_Xsrf_returns_400","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Console_prebuild_is_ready","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Console_prebuild_is_ready","Tags":["kernel"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Editor_returns_200","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Editor_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"IDE_returns_200","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/IDE_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Requests_with_http_get_redirected_to_https","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Requests_with_http_get_redirected_to_https","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Response_headers_include_Content_Security_Policy","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Response_headers_include_Content_Security_Policy","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Response_headers_include_X_Content_Type_Options","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Response_headers_include_X_Content_Type_Options","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Snippet_without_hostOrigin_returns_401","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_without_hostOrigin_returns_401","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Snippet_without_Xsrf_returns_401","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_without_Xsrf_returns_401","Tags":["deployment"],"Parameters":[]},{"Application":"trydotnet","Environment":"Staging","Name":"Version_sensor_returns_200","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Version_sensor_returns_200","Tags":["deployment"],"Parameters":[]}]
{"Application":"trydotnet","Environment":"Development","Name":"A_call_to_the_default_page_returns_200","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/A_call_to_the_default_page_returns_200","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Development"
Name"A_call_to_the_default_page_returns_200"
Url"http://try-ppe.dot.net/tests/Development/trydotnet/A_call_to_the_default_page_returns_200"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Development","Name":"BundleJs_has_gzip_Content_Encoding","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/BundleJs_has_gzip_Content_Encoding","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Development"
Name"BundleJs_has_gzip_Content_Encoding"
Url"http://try-ppe.dot.net/tests/Development/trydotnet/BundleJs_has_gzip_Content_Encoding"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Development","Name":"Can_get_signature_help","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Can_get_signature_help","Tags":["kernel"],"Parameters":[]}
Application"trydotnet"
Environment"Development"
Name"Can_get_signature_help"
Url"http://try-ppe.dot.net/tests/Development/trydotnet/Can_get_signature_help"
Tags
["kernel"]
kernel
Parameters
[]
{"Application":"trydotnet","Environment":"Development","Name":"Compile_without_hostOrigin_returns_401","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Compile_without_hostOrigin_returns_401","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Development"
Name"Compile_without_hostOrigin_returns_401"
Url"http://try-ppe.dot.net/tests/Development/trydotnet/Compile_without_hostOrigin_returns_401"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Development","Name":"Compile_without_Xsrf_returns_400","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Compile_without_Xsrf_returns_400","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Development"
Name"Compile_without_Xsrf_returns_400"
Url"http://try-ppe.dot.net/tests/Development/trydotnet/Compile_without_Xsrf_returns_400"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Development","Name":"Console_prebuild_is_ready","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Console_prebuild_is_ready","Tags":["kernel"],"Parameters":[]}
Application"trydotnet"
Environment"Development"
Name"Console_prebuild_is_ready"
Url"http://try-ppe.dot.net/tests/Development/trydotnet/Console_prebuild_is_ready"
Tags
["kernel"]
kernel
Parameters
[]
{"Application":"trydotnet","Environment":"Development","Name":"Editor_returns_200","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Editor_returns_200","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Development"
Name"Editor_returns_200"
Url"http://try-ppe.dot.net/tests/Development/trydotnet/Editor_returns_200"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Development","Name":"IDE_returns_200","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/IDE_returns_200","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Development"
Name"IDE_returns_200"
Url"http://try-ppe.dot.net/tests/Development/trydotnet/IDE_returns_200"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Development","Name":"Requests_with_http_get_redirected_to_https","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Requests_with_http_get_redirected_to_https","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Development"
Name"Requests_with_http_get_redirected_to_https"
Url"http://try-ppe.dot.net/tests/Development/trydotnet/Requests_with_http_get_redirected_to_https"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Development","Name":"Response_headers_include_Content_Security_Policy","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Response_headers_include_Content_Security_Policy","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Development"
Name"Response_headers_include_Content_Security_Policy"
Url"http://try-ppe.dot.net/tests/Development/trydotnet/Response_headers_include_Content_Security_Policy"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Development","Name":"Response_headers_include_X_Content_Type_Options","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Response_headers_include_X_Content_Type_Options","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Development"
Name"Response_headers_include_X_Content_Type_Options"
Url"http://try-ppe.dot.net/tests/Development/trydotnet/Response_headers_include_X_Content_Type_Options"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Development","Name":"Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Development"
Name"Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200"
Url"http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Development","Name":"Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Development"
Name"Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200"
Url"http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Development","Name":"Snippet_without_hostOrigin_returns_401","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_without_hostOrigin_returns_401","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Development"
Name"Snippet_without_hostOrigin_returns_401"
Url"http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_without_hostOrigin_returns_401"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Development","Name":"Snippet_without_Xsrf_returns_401","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_without_Xsrf_returns_401","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Development"
Name"Snippet_without_Xsrf_returns_401"
Url"http://try-ppe.dot.net/tests/Development/trydotnet/Snippet_without_Xsrf_returns_401"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Development","Name":"Version_sensor_returns_200","Url":"http://try-ppe.dot.net/tests/Development/trydotnet/Version_sensor_returns_200","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Development"
Name"Version_sensor_returns_200"
Url"http://try-ppe.dot.net/tests/Development/trydotnet/Version_sensor_returns_200"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Production","Name":"A_call_to_the_default_page_returns_200","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/A_call_to_the_default_page_returns_200","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Production"
Name"A_call_to_the_default_page_returns_200"
Url"http://try-ppe.dot.net/tests/Production/trydotnet/A_call_to_the_default_page_returns_200"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Production","Name":"BundleJs_has_gzip_Content_Encoding","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/BundleJs_has_gzip_Content_Encoding","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Production"
Name"BundleJs_has_gzip_Content_Encoding"
Url"http://try-ppe.dot.net/tests/Production/trydotnet/BundleJs_has_gzip_Content_Encoding"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Production","Name":"Can_get_signature_help","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Can_get_signature_help","Tags":["kernel"],"Parameters":[]}
Application"trydotnet"
Environment"Production"
Name"Can_get_signature_help"
Url"http://try-ppe.dot.net/tests/Production/trydotnet/Can_get_signature_help"
Tags
["kernel"]
kernel
Parameters
[]
{"Application":"trydotnet","Environment":"Production","Name":"Compile_without_hostOrigin_returns_401","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Compile_without_hostOrigin_returns_401","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Production"
Name"Compile_without_hostOrigin_returns_401"
Url"http://try-ppe.dot.net/tests/Production/trydotnet/Compile_without_hostOrigin_returns_401"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Production","Name":"Compile_without_Xsrf_returns_400","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Compile_without_Xsrf_returns_400","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Production"
Name"Compile_without_Xsrf_returns_400"
Url"http://try-ppe.dot.net/tests/Production/trydotnet/Compile_without_Xsrf_returns_400"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Production","Name":"Console_prebuild_is_ready","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Console_prebuild_is_ready","Tags":["kernel"],"Parameters":[]}
Application"trydotnet"
Environment"Production"
Name"Console_prebuild_is_ready"
Url"http://try-ppe.dot.net/tests/Production/trydotnet/Console_prebuild_is_ready"
Tags
["kernel"]
kernel
Parameters
[]
{"Application":"trydotnet","Environment":"Production","Name":"Editor_returns_200","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Editor_returns_200","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Production"
Name"Editor_returns_200"
Url"http://try-ppe.dot.net/tests/Production/trydotnet/Editor_returns_200"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Production","Name":"IDE_returns_200","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/IDE_returns_200","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Production"
Name"IDE_returns_200"
Url"http://try-ppe.dot.net/tests/Production/trydotnet/IDE_returns_200"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Production","Name":"Requests_with_http_get_redirected_to_https","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Requests_with_http_get_redirected_to_https","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Production"
Name"Requests_with_http_get_redirected_to_https"
Url"http://try-ppe.dot.net/tests/Production/trydotnet/Requests_with_http_get_redirected_to_https"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Production","Name":"Response_headers_include_Content_Security_Policy","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Response_headers_include_Content_Security_Policy","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Production"
Name"Response_headers_include_Content_Security_Policy"
Url"http://try-ppe.dot.net/tests/Production/trydotnet/Response_headers_include_Content_Security_Policy"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Production","Name":"Response_headers_include_X_Content_Type_Options","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Response_headers_include_X_Content_Type_Options","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Production"
Name"Response_headers_include_X_Content_Type_Options"
Url"http://try-ppe.dot.net/tests/Production/trydotnet/Response_headers_include_X_Content_Type_Options"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Production","Name":"Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Production"
Name"Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200"
Url"http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Production","Name":"Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Production"
Name"Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200"
Url"http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Production","Name":"Snippet_without_hostOrigin_returns_401","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_without_hostOrigin_returns_401","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Production"
Name"Snippet_without_hostOrigin_returns_401"
Url"http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_without_hostOrigin_returns_401"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Production","Name":"Snippet_without_Xsrf_returns_401","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_without_Xsrf_returns_401","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Production"
Name"Snippet_without_Xsrf_returns_401"
Url"http://try-ppe.dot.net/tests/Production/trydotnet/Snippet_without_Xsrf_returns_401"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Production","Name":"Version_sensor_returns_200","Url":"http://try-ppe.dot.net/tests/Production/trydotnet/Version_sensor_returns_200","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Production"
Name"Version_sensor_returns_200"
Url"http://try-ppe.dot.net/tests/Production/trydotnet/Version_sensor_returns_200"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Staging","Name":"A_call_to_the_default_page_returns_200","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/A_call_to_the_default_page_returns_200","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Staging"
Name"A_call_to_the_default_page_returns_200"
Url"http://try-ppe.dot.net/tests/Staging/trydotnet/A_call_to_the_default_page_returns_200"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Staging","Name":"BundleJs_has_gzip_Content_Encoding","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/BundleJs_has_gzip_Content_Encoding","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Staging"
Name"BundleJs_has_gzip_Content_Encoding"
Url"http://try-ppe.dot.net/tests/Staging/trydotnet/BundleJs_has_gzip_Content_Encoding"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Staging","Name":"Can_get_signature_help","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Can_get_signature_help","Tags":["kernel"],"Parameters":[]}
Application"trydotnet"
Environment"Staging"
Name"Can_get_signature_help"
Url"http://try-ppe.dot.net/tests/Staging/trydotnet/Can_get_signature_help"
Tags
["kernel"]
kernel
Parameters
[]
{"Application":"trydotnet","Environment":"Staging","Name":"Compile_without_hostOrigin_returns_401","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Compile_without_hostOrigin_returns_401","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Staging"
Name"Compile_without_hostOrigin_returns_401"
Url"http://try-ppe.dot.net/tests/Staging/trydotnet/Compile_without_hostOrigin_returns_401"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Staging","Name":"Compile_without_Xsrf_returns_400","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Compile_without_Xsrf_returns_400","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Staging"
Name"Compile_without_Xsrf_returns_400"
Url"http://try-ppe.dot.net/tests/Staging/trydotnet/Compile_without_Xsrf_returns_400"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Staging","Name":"Console_prebuild_is_ready","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Console_prebuild_is_ready","Tags":["kernel"],"Parameters":[]}
Application"trydotnet"
Environment"Staging"
Name"Console_prebuild_is_ready"
Url"http://try-ppe.dot.net/tests/Staging/trydotnet/Console_prebuild_is_ready"
Tags
["kernel"]
kernel
Parameters
[]
{"Application":"trydotnet","Environment":"Staging","Name":"Editor_returns_200","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Editor_returns_200","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Staging"
Name"Editor_returns_200"
Url"http://try-ppe.dot.net/tests/Staging/trydotnet/Editor_returns_200"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Staging","Name":"IDE_returns_200","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/IDE_returns_200","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Staging"
Name"IDE_returns_200"
Url"http://try-ppe.dot.net/tests/Staging/trydotnet/IDE_returns_200"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Staging","Name":"Requests_with_http_get_redirected_to_https","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Requests_with_http_get_redirected_to_https","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Staging"
Name"Requests_with_http_get_redirected_to_https"
Url"http://try-ppe.dot.net/tests/Staging/trydotnet/Requests_with_http_get_redirected_to_https"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Staging","Name":"Response_headers_include_Content_Security_Policy","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Response_headers_include_Content_Security_Policy","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Staging"
Name"Response_headers_include_Content_Security_Policy"
Url"http://try-ppe.dot.net/tests/Staging/trydotnet/Response_headers_include_Content_Security_Policy"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Staging","Name":"Response_headers_include_X_Content_Type_Options","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Response_headers_include_X_Content_Type_Options","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Staging"
Name"Response_headers_include_X_Content_Type_Options"
Url"http://try-ppe.dot.net/tests/Staging/trydotnet/Response_headers_include_X_Content_Type_Options"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Staging","Name":"Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Staging"
Name"Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200"
Url"http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_from_GITHub_with_hostOrigin_and_XSRF_return_200"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Staging","Name":"Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Staging"
Name"Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200"
Url"http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_from_VSTO_and_hostOrigin_and_XSRF_returns_200"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Staging","Name":"Snippet_without_hostOrigin_returns_401","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_without_hostOrigin_returns_401","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Staging"
Name"Snippet_without_hostOrigin_returns_401"
Url"http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_without_hostOrigin_returns_401"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Staging","Name":"Snippet_without_Xsrf_returns_401","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_without_Xsrf_returns_401","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Staging"
Name"Snippet_without_Xsrf_returns_401"
Url"http://try-ppe.dot.net/tests/Staging/trydotnet/Snippet_without_Xsrf_returns_401"
Tags
["deployment"]
deployment
Parameters
[]
{"Application":"trydotnet","Environment":"Staging","Name":"Version_sensor_returns_200","Url":"http://try-ppe.dot.net/tests/Staging/trydotnet/Version_sensor_returns_200","Tags":["deployment"],"Parameters":[]}
Application"trydotnet"
Environment"Staging"
Name"Version_sensor_returns_200"
Url"http://try-ppe.dot.net/tests/Staging/trydotnet/Version_sensor_returns_200"
Tags
["deployment"]
deployment
Parameters
[]
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "GET https://try-ppe.dot.net/tests" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "dotnet_interactive": { + "language": "csharp" + }, + "polyglot_notebook": { + "kernelName": "csharp" + }, + "vscode": { + "languageId": "polyglot-notebook" + } + }, + "outputs": [], + "source": [] } ], "metadata": { From 0c1d47791c9abd1095b237f45c0dd615b4dc450c Mon Sep 17 00:00:00 2001 From: Jon Sequeira Date: Wed, 24 Apr 2024 10:29:53 -0700 Subject: [PATCH 2/2] dev guide updates --- Developer-guide.ipynb | 259 ++++++++++++++++++------------------------ 1 file changed, 108 insertions(+), 151 deletions(-) diff --git a/Developer-guide.ipynb b/Developer-guide.ipynb index 2c41bcb8f..6e7e9ec25 100644 --- a/Developer-guide.ipynb +++ b/Developer-guide.ipynb @@ -4,7 +4,19 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Building .NET Interactive [Optional]\n", + "# Prerequisites\n", + "\n", + "In order to build Try .NET, you'll need the following installed:\n", + "\n", + "* The [.NET 8 SDK](https://learn.microsoft.com/en-us/dotnet/core/install/).\n", + "* The LTS version of [Node.js](https://nodejs.org/en/download)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 1: [Optional] Build .NET Interactive\n", "\n", "The core functionality in Try .NET is the .NET Interactive repo, which contains the `CSharpProjectKernel` that powers Try .NET's compilation and language services. \n", "\n", @@ -17,7 +29,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## 1.1: Clone and build .NET Interactive\n", + "## 1.1: Clone, build, and pack .NET Interactive\n", "\n", "First, make sure you have the [.NET Interactive repo](https://github.com/dotnet/interactive) forked and cloned. Set the path to the repo root in the following cell. \n" ] @@ -70,59 +82,11 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## 2.1: Clone and build Try .NET" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "dotnet_interactive": { - "language": "pwsh" - }, - "polyglot_notebook": { - "kernelName": "pwsh" - } - }, - "outputs": [], - "source": [ - "$tryDotnetRepoPath = Get-Location\n", - "\n", - "$tryDotNetProjectFilePath=\"$tryDotnetRepoPath\\src\\Microsoft.TryDotNet\\Microsoft.TryDotNet.csproj\"\n", - "$mockMsLearnServerPath=\"$tryDotnetRepoPath\\src\\microsoft-learn-mock\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "dotnet_interactive": { - "language": "pwsh" - }, - "polyglot_notebook": { - "kernelName": "pwsh" - } - }, - "outputs": [], - "source": [ - "if ($IsWindows) {\n", - " Invoke-Expression \"$tryDotnetRepoPath\\build-js.cmd\"\n", - "}else {\n", - " Invoke-Expression \"$tryDotnetRepoPath/build-js.sh\"\n", - "}\n", - "\n", - "dotnet build" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2.2: [Optional] Update Microsoft.DotNet.Interactive.CSharpProject version used by Try .NET\n", + "## 1.2: Update Microsoft.DotNet.Interactive.CSharpProject version used by Try .NET\n", "\n", "This step only needs to be done if you're changing code from the .NET Interactive repo.\n", "\n", - "This step modifies NuGet.config to reference the local package source where .NET Interactive packages build in Step 1 should be found." + "This step modifies NuGet.config to reference the local package source where .NET Interactive packages build in Step 1.* should be found." ] }, { @@ -142,14 +106,14 @@ "[xml]$nugetConfig = Get-Content $nugetConfigPath\n", "\n", "$newPackageSource = $nugetConfig.CreateElement(\"add\")\n", - "$newPackageSource.SetAttribute(\"key\", \"LocalPackages\")\n", + "$newPackageSource.SetAttribute(\"key\", \"LocalDevPackages\")\n", "$newPackageSource.SetAttribute(\"value\", \"C:\\temp\\packages\")\n", "\n", "$packageSourcesNode = $nugetConfig.SelectSingleNode('configuration/packageSources')\n", "$packageSourcesNode.AppendChild($newPackageSource) > $null\n", "\n", "$packageMappingNode = $nugetConfig.CreateElement(\"packageSource\")\n", - "$packageMappingNode.SetAttribute(\"key\", \"temp\")\n", + "$packageMappingNode.SetAttribute(\"key\", \"LocalDevPackages\")\n", "$packageNode = $nugetConfig.CreateElement(\"package\")\n", "$packageNode.SetAttribute(\"pattern\", \"*\")\n", "$packageMappingNode.AppendChild($packageNode) > $null\n", @@ -219,14 +183,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## 2.3: Start the Try .NET service\n", - "\n", - "This launches the Try .NET web service. It will launch in a separate terminal window. Closing that window will stop the server." + "## 2.1: Clone and build Try .NET" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { "dotnet_interactive": { "language": "pwsh" @@ -237,14 +199,17 @@ }, "outputs": [], "source": [ - "Start-Process pwsh -ArgumentList \"-c dotnet run --no-build --project ${tryDotNetProjectFilePath} --launch-profile TryDotNet-Development\"" + "$tryDotnetRepoPath = Get-Location\n", + "\n", + "$tryDotNetProjectFilePath=\"$tryDotnetRepoPath\\src\\Microsoft.TryDotNet\\Microsoft.TryDotNet.csproj\"\n", + "$mockMsLearnServerPath=\"$tryDotnetRepoPath\\src\\microsoft-learn-mock\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## 2.5: [One time only] Build MS Learn mock server" + "First, build the client pieces, which includes the `trydotnet.js` library." ] }, { @@ -260,114 +225,80 @@ }, "outputs": [], "source": [ - "Set-Location -Path $mockMsLearnServerPath\n", - "npm ci\n", - "npm run buildProd" + "if ($IsWindows) {\n", + " Invoke-Expression \"$tryDotnetRepoPath\\build-js.cmd\"\n", + "} else {\n", + " Invoke-Expression \"$tryDotnetRepoPath/build-js.sh\"\n", + "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## 2.4: Verify Try .NET by running Peaky tests" + "Next, build the Try .NET service." ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { "dotnet_interactive": { - "language": "csharp" + "language": "pwsh" }, "polyglot_notebook": { - "kernelName": "csharp" + "kernelName": "pwsh" } }, - "outputs": [ - { - "data": { - "text/html": [ - "
Installed Packages
  • Peaky.Client, 4.0.79
" - ] - }, - "metadata": {}, - "output_type": "display_data" + "outputs": [], + "source": [ + "dotnet build -c Debug $tryDotnetRepoPath" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2.2: Start the Try .NET service\n", + "\n", + "This launches the Try .NET web service. It will launch in a separate terminal window. Closing that window will stop the server." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "dotnet_interactive": { + "language": "pwsh" }, - { - "data": { - "text/html": [ - "
✅ Passed: Can_get_signature_help
\n", - " 🧪https://localhost:7061/tests/Development/trydotnet/Can_get_signature_help\n", - "
\n", - " Application: trydotnet\n", - "
\n", - " Environment: Development\n", - "
\n", - " Tags: kernel\n", - "
\n", - "
{\r\n",
-       "  "Outcome": "passed",\r\n",
-       "  "ReturnValue": null,\r\n",
-       "  "Passed": true,\r\n",
-       "  "Log": "",\r\n",
-       "  "Duration": "00:00:01.6782308",\r\n",
-       "  "Exception": null,\r\n",
-       "  "Test": {\r\n",
-       "    "Application": "trydotnet",\r\n",
-       "    "Name": "Can_get_signature_help",\r\n",
-       "    "Environment": "Development",\r\n",
-       "    "Url": "https://localhost:7061/tests/Development/trydotnet/Can_get_signature_help",\r\n",
-       "    "Tags": [\r\n",
-       "      "kernel"\r\n",
-       "    ]\r\n",
-       "  }\r\n",
-       "}
" - ] - }, - "metadata": {}, - "output_type": "display_data" + "polyglot_notebook": { + "kernelName": "pwsh" + } + }, + "outputs": [], + "source": [ + "Start-Process pwsh -ArgumentList \"-c dotnet run --no-build --project ${tryDotNetProjectFilePath} --launch-profile TryDotNet-Development\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2.3: Verify Try .NET by running Peaky tests" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "dotnet_interactive": { + "language": "csharp" }, - { - "data": { - "text/html": [ - "
✅ Passed: Console_prebuild_is_ready
\n", - " 🧪https://localhost:7061/tests/Development/trydotnet/Console_prebuild_is_ready\n", - "
\n", - " Application: trydotnet\n", - "
\n", - " Environment: Development\n", - "
\n", - " Tags: kernel\n", - "
\n", - "
{\r\n",
-       "  "Outcome": "passed",\r\n",
-       "  "ReturnValue": {\r\n",
-       "    "EnableBuild": false,\r\n",
-       "    "Directory": null,\r\n",
-       "    "Name": "console",\r\n",
-       "    "EntryPointAssemblyPath": null,\r\n",
-       "    "TargetFramework": "net8.0"\r\n",
-       "  },\r\n",
-       "  "Passed": true,\r\n",
-       "  "Log": "",\r\n",
-       "  "Duration": "00:00:00.0447764",\r\n",
-       "  "Exception": null,\r\n",
-       "  "Test": {\r\n",
-       "    "Application": "trydotnet",\r\n",
-       "    "Name": "Console_prebuild_is_ready",\r\n",
-       "    "Environment": "Development",\r\n",
-       "    "Url": "https://localhost:7061/tests/Development/trydotnet/Console_prebuild_is_ready",\r\n",
-       "    "Tags": [\r\n",
-       "      "kernel"\r\n",
-       "    ]\r\n",
-       "  }\r\n",
-       "}
" - ] - }, - "metadata": {}, - "output_type": "display_data" + "polyglot_notebook": { + "kernelName": "csharp" } - ], + }, + "outputs": [], "source": [ "#r \"nuget:Peaky.Client\"\n", "\n", @@ -386,6 +317,32 @@ "}" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2.4: [One time only] Build MS Learn mock server" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "dotnet_interactive": { + "language": "pwsh" + }, + "polyglot_notebook": { + "kernelName": "pwsh" + } + }, + "outputs": [], + "source": [ + "Set-Location -Path $mockMsLearnServerPath\n", + "npm ci\n", + "npm run buildProd\n", + "Set-Location $tryDotnetRepoPath" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -442,11 +399,11 @@ "source": [ "## Try .NET / Microsoft Learn flow diagram\n", "\n", - "The diagram available through the link below provides a comprehensive of the interaction between Try .NET service (trydotnet.microsoft.com) and a host page (learn.microsoft.com).\n", + "The diagram available through the link below provides a comprehensive view of the interaction between the Try .NET service and a host page (e.g., learn.microsoft.com).\n", "\n", "https://github.com/dotnet/interactive/tree/main/src/Microsoft.DotNet.Interactive.CSharpProject#try-net--microsoft-learn-flow\n", "\n", - "The core of Try .NET is powered by the `CSharpProjectKernel`, which serves as the backend for .NET Interactive." + "The core of Try .NET is powered by the `CSharpProjectKernel`, which does most of the work powering the Try .NET service." ] } ],