-
Notifications
You must be signed in to change notification settings - Fork 63
[tests] migrate nunit-console commands to MSBuild #193
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
Conversation
@jonathanpeppers, |
<PropertyGroup> | ||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | ||
<_TopDir>$(MSBuildThisFileDirectory)..\..</_TopDir> | ||
<_RuntimeVersion Condition=" '$(OS)' != 'Windows_NT' ">--runtime=v4.0.0</_RuntimeVersion> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need --runtime
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably not, I was mainly trying to keep everything exactly as it was.
I think the tests still pass fine without it.
25b7d46
to
ceab911
Compare
The end goal here is to easily enable running tests on Windows. To enable this, a new `build-tools/scripts/RunNUnitTests.targets` file is needed. The `Makefile` will invoke this file so we aren't duplicating anything. We will continue with this approach in xamarin/xamarin-android, so running unit tests is simpler on Windows there, too. Usage (Windows): Run all tests: `msbuild build-tools/scripts/RunNUnitTests.targets` Filter based on the `--run` switch: `msbuild build-tools/scripts/RunNUnitTests.targets /p:Run=Java.Interop` Run tests on specific assemblies: `msbuild build-tools\scripts\RunNUnitTests.targets /p:TestAssembly="bin\TestDebug\Java.Interop.Tools.JavaCallableWrappers-Tests.dll;bin\TestDebug\LogcatParse-Tests.dll"` Usage (macOS/linux): `make` commands should remain unchanged. Existing environment variables should continue to work such as `RUNTIME`, `RUN`, `CONFIGURATION`, etc.
ceab911
to
dea2eb9
Compare
Thanks! |
The end goal here is to easily enable running tests on Windows. To enable this, a new `build-tools/scripts/RunNUnitTests.targets` file is needed. The `Makefile` will invoke this file so we aren't duplicating anything. We will continue with this approach in xamarin/xamarin-android, so running unit tests is simpler on Windows there, too. **Usage (Windows):** Run all tests: msbuild build-tools/scripts/RunNUnitTests.targets Filter based on the `--run` switch: msbuild build-tools/scripts/RunNUnitTests.targets /p:Run=Java.Interop Run tests on specific assemblies: msbuild build-tools\scripts\RunNUnitTests.targets /p:TestAssembly="bin\TestDebug\Java.Interop.Tools.JavaCallableWrappers-Tests.dll;bin\TestDebug\LogcatParse-Tests.dll" **Usage (macOS/Linux):** `make` commands should remain unchanged. Existing environment variables should continue to work such as `RUNTIME`, `RUN`, `CONFIGURATION`, etc. make run-tests TESTS=bin/TestDebug/Java.Interop.Tools.JavaCallableWrappers-Tests.dll
Context: dotnet/android@7b4d4b8 Context: https://github.com/dotnet/sourcelink#githubcom-and-github-enterprise Context: https://www.hanselman.com/blog/exploring-net-cores-sourcelink-stepping-into-the-source-code-of-nuget-packages-you-dont-own Changes: http://github.com/xamarin/xamarin-android-tools/compare/fc3c2ac191a47715bc58e110ef28f38009158416...29f11f2a304376bfa96de999a78083fe5a8174c6 * dotnet/android-tools@29f11f2: Bump to mono/mono.posix@d8994ca, dotnet/android-libzipsharp@98e9173 (dotnet#193) * dotnet/android-tools@7cfe683: [ci] Use Microsoft.SourceLink.GitHub (dotnet#192) * dotnet/android-tools@01a0dde: [Localization] Import translated resx files (dotnet#189) * dotnet/android-tools@cc715d9: [Xamarin.Android.Tools.AndroidSdk] Permit NDK r25 (dotnet#190) * dotnet/android-tools@3c55e9a: Avoid `Environment.SpecialFolder.ApplicationData` (dotnet#188) * dotnet/android-tools@0d55472: LEGO: Merge pull request 187 * dotnet/android-tools@6946512: Juno: check in to juno/hb_befb220e-87ce-47e9-a9e6-10ea592b2337_20220729154833425. (dotnet#186) * dotnet/android-tools@6e3433a: Juno: check in to juno/hb_befb220e-87ce-47e9-a9e6-10ea592b2337_20220729025332507. (dotnet#185) * dotnet/android-tools@73c4388: [Xamarin.Android.Tools.AndroidSdk] Update SDK component for API-33 (dotnet#184) * dotnet/android-tools@da3653e: [Xamarin.Android.Tools.AndroidSdk] Add API-33 to KnownVersions * dotnet/android-tools@327d433: [ci] Run OneLocBuild on a schedule (dotnet#180) * dotnet/android-tools@8ab60e4: [ci] Use latest macOS and Windows images (dotnet#181) * dotnet/android-tools@4dd3292: LEGO: Merge pull request 182 * dotnet/android-tools@56b61f1: [Localization] Add OneLocBuild job (dotnet#175) * dotnet/android-tools@14076a6: [Xamarin.Android.Tools.AndroidSdk] Add API-32 to KnownVersions * dotnet/android-tools@9c641b3: [Xamarin.Android.Tools.AndroidSdk] Update SDK component for API-32 (dotnet#169) * dotnet/android-tools@ec346d0: [Xamarin.Android.Tools.AndroidSdk] Permit NDK r24 (dotnet#171) * dotnet/android-tools@47832f1: [Xamarin.Android.Tools.AndroidSdk] AndroidSdkInfo validation locator (dotnet#170) * dotnet/android-tools@20f6112: Bump LibZipSharp to 2.0.4 (dotnet#166) * dotnet/android-tools@e4f0d59: Add support for writing android:roundIcon to Android manifest (dotnet#162) Add a reference to the [Microsoft.SourceLink.GitHub NuGet package][0] to `src/*/*.csproj` and `tools/*/*.csproj` so that `*.pdb` such as `Java.Interop.pdb` contain URLs to facilitate debugging into their corresponding assemblies without needing to checkout and build the `Java.Interop` repo locally: % dotnet tool install --global SourceLink --version 3.1.1 % $HOME/.dotnet/tools/sourcelink print-urls bin/Debug-net7.0/Java.Interop.pdb c1eaa3b7ef9a7354080ca02e56f5052a7b04fcf78298210fb69a1c05c5827c3d sha256 csharp /Volumes/Xamarin-Work/src/xamarin/Java.Interop/src/Java.Interop/GlobalSuppressions.cs https://github.com/raw/jonpryor/Java.Interop/6d1ae4ee1076341f8af36dbdd306dce0e6266999/src/Java.Interop/GlobalSuppressions.cs … % $HOME/.dotnet/tools/sourcelink test bin/Debug-net7.0/Java.Interop.pdb 3 Documents with errors: 983b6f609d1a601d57df96467aafe6a0cc6173a23d261f98ad582d16983259a9 sha256 csharp /Volumes/Xamarin-Work/src/xamarin/Java.Interop/src/Java.Interop/obj/Debug/net7.0/JniEnvironment.g.cs https://github.com/raw/jonpryor/Java.Interop/6d1ae4ee1076341f8af36dbdd306dce0e6266999/src/Java.Interop/obj/Debug/net7.0/JniEnvironment.g.cs error: url failed NotFound: Not Found 9596da901062cf5add81d66c23696ca92bbfa59c82fe10f4f06d45292e2cb0ff sha256 csharp /Volumes/Xamarin-Work/src/xamarin/Java.Interop/src/Java.Interop/obj/Debug/net7.0/.NETCoreApp,Version=v7.0.AssemblyAttributes.cs https://github.com/raw/jonpryor/Java.Interop/6d1ae4ee1076341f8af36dbdd306dce0e6266999/src/Java.Interop/obj/Debug/net7.0/.NETCoreApp,Version=v7.0.AssemblyAttributes.cs error: url failed NotFound: Not Found 508b170eae1ea8b281b2a892293c0b1f2b1ee67db1bd8ce89036541d3f121643 sha256 csharp /Volumes/Xamarin-Work/src/xamarin/Java.Interop/src/Java.Interop/obj/Debug/net7.0/Java.Interop.AssemblyInfo.cs https://github.com/raw/jonpryor/Java.Interop/6d1ae4ee1076341f8af36dbdd306dce0e6266999/src/Java.Interop/obj/Debug/net7.0/Java.Interop.AssemblyInfo.cs error: url failed NotFound: Not Found sourcelink test failed These errors are expected, as they are generated files. [0]: https://www.nuget.org/packages/Microsoft.SourceLink.GitHub
Context: dotnet/android@7b4d4b8 Context: https://github.com/dotnet/sourcelink#githubcom-and-github-enterprise Context: https://www.hanselman.com/blog/exploring-net-cores-sourcelink-stepping-into-the-source-code-of-nuget-packages-you-dont-own Changes: http://github.com/xamarin/xamarin-android-tools/compare/fc3c2ac191a47715bc58e110ef28f38009158416...29f11f2a304376bfa96de999a78083fe5a8174c6 * dotnet/android-tools@29f11f2: Bump to mono/mono.posix@d8994ca, dotnet/android-libzipsharp@98e9173 (#193) * dotnet/android-tools@7cfe683: [ci] Use Microsoft.SourceLink.GitHub (#192) * dotnet/android-tools@01a0dde: [Localization] Import translated resx files (#189) * dotnet/android-tools@cc715d9: [Xamarin.Android.Tools.AndroidSdk] Permit NDK r25 (#190) * dotnet/android-tools@3c55e9a: Avoid `Environment.SpecialFolder.ApplicationData` (#188) * dotnet/android-tools@0d55472: LEGO: Merge pull request 187 * dotnet/android-tools@6946512: Juno: check in to juno/hb_befb220e-87ce-47e9-a9e6-10ea592b2337_20220729154833425. (#186) * dotnet/android-tools@6e3433a: Juno: check in to juno/hb_befb220e-87ce-47e9-a9e6-10ea592b2337_20220729025332507. (#185) * dotnet/android-tools@73c4388: [Xamarin.Android.Tools.AndroidSdk] Update SDK component for API-33 (#184) * dotnet/android-tools@da3653e: [Xamarin.Android.Tools.AndroidSdk] Add API-33 to KnownVersions * dotnet/android-tools@327d433: [ci] Run OneLocBuild on a schedule (#180) * dotnet/android-tools@8ab60e4: [ci] Use latest macOS and Windows images (#181) * dotnet/android-tools@4dd3292: LEGO: Merge pull request 182 * dotnet/android-tools@56b61f1: [Localization] Add OneLocBuild job (#175) * dotnet/android-tools@14076a6: [Xamarin.Android.Tools.AndroidSdk] Add API-32 to KnownVersions * dotnet/android-tools@9c641b3: [Xamarin.Android.Tools.AndroidSdk] Update SDK component for API-32 (#169) * dotnet/android-tools@ec346d0: [Xamarin.Android.Tools.AndroidSdk] Permit NDK r24 (#171) * dotnet/android-tools@47832f1: [Xamarin.Android.Tools.AndroidSdk] AndroidSdkInfo validation locator (#170) * dotnet/android-tools@20f6112: Bump LibZipSharp to 2.0.4 (#166) * dotnet/android-tools@e4f0d59: Add support for writing android:roundIcon to Android manifest (#162) Add a reference to the [Microsoft.SourceLink.GitHub NuGet package][0] to `src/*/*.csproj` and `tools/*/*.csproj` so that `*.pdb` such as `Java.Interop.pdb` contain URLs to facilitate debugging into their corresponding assemblies without needing to checkout and build the `Java.Interop` repo locally: % dotnet tool install --global SourceLink --version 3.1.1 % $HOME/.dotnet/tools/sourcelink print-urls bin/Debug-net7.0/Java.Interop.pdb c1eaa3b7ef9a7354080ca02e56f5052a7b04fcf78298210fb69a1c05c5827c3d sha256 csharp /Volumes/Xamarin-Work/src/xamarin/Java.Interop/src/Java.Interop/GlobalSuppressions.cs https://github.com/raw/jonpryor/Java.Interop/6d1ae4ee1076341f8af36dbdd306dce0e6266999/src/Java.Interop/GlobalSuppressions.cs … % $HOME/.dotnet/tools/sourcelink test bin/Debug-net7.0/Java.Interop.pdb 3 Documents with errors: 983b6f609d1a601d57df96467aafe6a0cc6173a23d261f98ad582d16983259a9 sha256 csharp /Volumes/Xamarin-Work/src/xamarin/Java.Interop/src/Java.Interop/obj/Debug/net7.0/JniEnvironment.g.cs https://github.com/raw/jonpryor/Java.Interop/6d1ae4ee1076341f8af36dbdd306dce0e6266999/src/Java.Interop/obj/Debug/net7.0/JniEnvironment.g.cs error: url failed NotFound: Not Found 9596da901062cf5add81d66c23696ca92bbfa59c82fe10f4f06d45292e2cb0ff sha256 csharp /Volumes/Xamarin-Work/src/xamarin/Java.Interop/src/Java.Interop/obj/Debug/net7.0/.NETCoreApp,Version=v7.0.AssemblyAttributes.cs https://github.com/raw/jonpryor/Java.Interop/6d1ae4ee1076341f8af36dbdd306dce0e6266999/src/Java.Interop/obj/Debug/net7.0/.NETCoreApp,Version=v7.0.AssemblyAttributes.cs error: url failed NotFound: Not Found 508b170eae1ea8b281b2a892293c0b1f2b1ee67db1bd8ce89036541d3f121643 sha256 csharp /Volumes/Xamarin-Work/src/xamarin/Java.Interop/src/Java.Interop/obj/Debug/net7.0/Java.Interop.AssemblyInfo.cs https://github.com/raw/jonpryor/Java.Interop/6d1ae4ee1076341f8af36dbdd306dce0e6266999/src/Java.Interop/obj/Debug/net7.0/Java.Interop.AssemblyInfo.cs error: url failed NotFound: Not Found sourcelink test failed These errors are expected, as they are generated files. [0]: https://www.nuget.org/packages/Microsoft.SourceLink.GitHub
The end goal here is to easily enable running tests on Windows. To
enable this, a new
build-tools/scripts/RunNUnitTests.targets
file isneeded. The
Makefile
will invoke this file so we aren't duplicatinganything.
We will continue with this approach in xamarin/xamarin-android, so
running unit tests is simpler on Windows there, too.
Usage (Windows):
Run all tests:
Filter based on the
--run
switch:Run tests on specific assemblies:
Usage (macOS/linux)
make
commands should remain unchanged. Existing environment variablesshould continue to work such as
RUNTIME
,RUN
,CONFIGURATION
, etc.