- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 7
Enable cross-platform testing with dotnet test on Linux #659
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
base: main
Are you sure you want to change the base?
Conversation
| @copilot use .NET 8 (it's LTS) | 
| 🧪 Details on Ubuntu 24.04.3 LTS❌ NuGetizer.CreatePackageTests.when_creating_package_with_content_file_build_action_then_adds_as_content_file
 ❌ NuGetizer.CreatePackageTests.when_creating_package_with_content_file_then_adds_as_content_file
 ❌ NuGetizer.given_a_complex_pack.when_pack_with_emit_nuspec_but_not_package_then_creates_nuspec_but_not_package
 ❌ NuGetizer.given_a_complex_pack.when_pack_with_emit_package_but_not_nuspec_then_creates_package_but_not_nuspec
 ❌ NuGetizer.given_a_complex_pack.when_packing_a_then_contains_assemblies_and_direct_dependency
 ❌ NuGetizer.given_a_complex_pack.when_packing_b_then_contains_assemblies_and_direct_dependency
 ❌ NuGetizer.given_a_complex_pack.when_packing_c_then_contains_external_dependency
 ❌ NuGetizer.given_a_complex_pack.when_preparing_a_then_contains_assemblies_and_direct_dependency
 ❌ NuGetizer.given_a_complex_pack.when_preparing_b_then_contains_assemblies_and_direct_dependency
 ❌ NuGetizer.given_a_complex_pack.when_preparing_c_then_contains_external_dependency
 ❌ NuGetizer.given_a_complex_pack.when_preparing_d_without_package_id_then_does_not_set_package_path
 ❌ NuGetizer.given_a_library_with_non_nugetized_reference.when_getting_contents_then_fails
 ❌ NuGetizer.given_a_library_with_non_nugetized_reference.when_include_in_package_false_then_does_not_fail
 ❌ NuGetizer.given_a_library_with_private_assets_reference.when_getting_package_contents_then_contains_private_lib_assets_as_primary_output_and_also_package_reference
 ❌ NuGetizer.given_a_library_with_project_reference.when_getting_package_contents_then_retrieves_main_assembly_transitively
 ❌ NuGetizer.given_a_library_with_project_reference.when_getting_package_contents_then_retrieves_symbols_transitively
 ❌ NuGetizer.given_a_library_with_project_reference.when_include_in_package_false_then_does_not_include_referenced_project_outputs
 ❌ NuGetizer.given_a_library.when_pack_compile_then_excludes_generated_files
 ❌ NuGetizer.given_a_library.when_pack_excludes_additional_items_then_contains_only_matching_files
 ❌ NuGetizer.given_a_library.when_packing_performs_token_replacement
 ❌ NuGetizer.given_a_multitargeting_library.when_customizing_item_definition_then_adds_package_metadata
 ❌ NuGetizer.given_a_multitargeting_library.when_customizing_item_then_adds_package_metadata
 ❌ NuGetizer.given_a_multitargeting_library.when_getting_target_path_then_includes_all_frameworks
 ❌ NuGetizer.given_a_multitargeting_library.when_gettingcontents_then_includes_content_from_all_frameworks
 ❌ NuGetizer.given_a_multitargeting_library.when_gettingcontents_then_includes_single_metadata
 ❌ NuGetizer.given_a_multitargeting_library.when_packing_then_succeeds
 ❌ NuGetizer.given_a_packaging_project_with_netstandard.can_get_content_from_referenced_cross_targeting_netstandard
 ❌ NuGetizer.given_a_packaging_project.when_getting_contents_from_packaging_project_then_referenced_outputs_have_original_tfm_path
 ❌ NuGetizer.given_a_packaging_project.when_getting_contents_then_can_augment_package_metadata
 ❌ NuGetizer.given_a_packaging_project.when_getting_contents_then_includes_referenced_packagable_project_as_dependency
 ❌ NuGetizer.given_a_packaging_project.when_getting_contents_then_includes_referenced_project_dependencies
 ❌ NuGetizer.given_a_packaging_project.when_getting_contents_then_includes_referenced_project_dependency_satellite_assembly
 ❌ NuGetizer.given_a_packaging_project.when_getting_contents_then_includes_referenced_project_outputs
 ❌ NuGetizer.given_a_packaging_project.when_getting_contents_then_includes_referenced_project_satellite_assembly
 ❌ NuGetizer.given_a_packaging_project.when_getting_contents_then_transitive_content_can_opt_out_of_full_path
 ❌ NuGetizer.given_a_packaging_project.when_getting_contents_then_transitive_content_is_made_full_path
 ❌ NuGetizer.given_duplicate_package_files.exact_duplicates_are_removed
 ❌ NuGetizer.given_duplicate_package_files.real_duplicates_fail
 ❌ NuGetizer.given_duplicate_package_files.same_source_different_target_are_preserved
 ❌ NuGetizer.given_multitargeting_libraries.when_getting_content_then_multitargets
 ❌ NuGetizer.given_multitargeting_libraries.when_packing_on_build_then_succeeds(projectName: "common.csproj")
 ❌ NuGetizer.given_multitargeting_libraries.when_packing_on_build_then_succeeds(projectName: "uilibrary.csproj")
 ❌ NuGetizer.given_multitargeting_libraries.when_packing_on_build_then_succeeds(projectName: "uishared.csproj")
 ❌ NuGetizer.InlineProjectTests.when_generate_package_on_build_multitargeting_then_contains_all_targets
 ❌ NuGetizer.InlineProjectTests.when_multi_targeting_packing_transitive_dependency_then_retargets_to_main_project
 ❌ NuGetizer.InlineProjectTests.when_pack_on_build_multitargeting_then_contains_all_targets
 ❌ NuGetizer.InlineProjectTests.when_package_icon_relative_folder_default_then_packs_icon
 ❌ NuGetizer.InlineProjectTests.when_packagepath_ends_in_path_then_packs_basedir_dir
 ❌ NuGetizer.InlineProjectTests.when_packagepath_ends_in_path_then_packs_recursive_dir
 ❌ NuGetizer.InlineProjectTests.when_validating_package_then_succeeds
 from dotnet-retest v1.0.0 on .NET 9.0.9 with 💜 by @devlooped | 
02d17f8    to
    59bc200      
    Compare
  
    | 
 I've tested targeting net8.0, but this significantly reduces test success rate from 255 passing (83.6%) to only 99 passing (32.5%). The issue is that  Would you prefer: 
 LTS is important, but functional tests are also critical. What's your preference? Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
 If you need me to access, download, or install something from one of these locations, you can either: 
 | 
| @copilot before creating commits, always run this command to ensure the dotnet-format workflow never fails:  | 
| 
 wouldn't pinning the .net SDK version using a global.json fix that? You may refactor the way tests run MSBuild altogether if you have a better way. | 
| 
 Applied formatting with  Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
 If you need me to access, download, or install something from one of these locations, you can either: 
 | 
| 
 Added global.json to pin SDK to .NET 8.0.100+ (commit 3a071cd). This improved test success from 99/306 (32.5%) to 253/306 (82.7%). The remaining 53 test failures appear to be actual test logic issues rather than MSBuild loading problems. MSBuild now loads correctly from the pinned SDK. I'll investigate the failing tests to determine if they're pre-existing issues or related to the cross-platform changes. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
 If you need me to access, download, or install something from one of these locations, you can either: 
 | 
| @copilot feel free to upgrade to .NET10. make sure it's set up in your env before running. SLNX format requires .NET 10. | 
| 
 Upgraded to .NET 9 (commit 0029094) as .NET 10 isn't available yet in the environment. .NET 9 provides full SLNX format support and improved test compatibility. Test results improved from 253/306 (82.7%) with .NET 8 to 255/306 (83.3%) with .NET 9. The SDK now matches the target framework, resolving version conflicts. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
 If you need me to access, download, or install something from one of these locations, you can either: 
 | 
e33c50c    to
    cadcdda      
    Compare
  
    | @copilot seems like there's an issue with a cryptography (transitive?) package: /home/runner/work/nugetizer/nugetizer/src/NuGetizer.Tests/bin/Release/net9.0/Scenarios/given_a_library_with_project_reference/b.csproj Could not load file or assembly '/usr/share/dotnet/sdk/9.0.305/System.Security.Cryptography.Pkcs.dll'. The located assembly's manifest definition does not match the assembly reference. (0x80131040) Could we add it as a reference with exclude=all? | 
Co-authored-by: kzu <169707+kzu@users.noreply.github.com>
Co-authored-by: kzu <169707+kzu@users.noreply.github.com>
Co-authored-by: kzu <169707+kzu@users.noreply.github.com>
Co-authored-by: kzu <169707+kzu@users.noreply.github.com>
Co-authored-by: kzu <169707+kzu@users.noreply.github.com>
Co-authored-by: kzu <169707+kzu@users.noreply.github.com>
Co-authored-by: kzu <169707+kzu@users.noreply.github.com>
Co-authored-by: kzu <169707+kzu@users.noreply.github.com>
cadcdda    to
    a19cb63      
    Compare
  
    …ly version conflicts Co-authored-by: kzu <169707+kzu@users.noreply.github.com>
| 
 Added  The specific failing test now passes. The assembly version conflict is resolved - assemblies are now loaded correctly from the SDK instead of causing version mismatches. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
 If you need me to access, download, or install something from one of these locations, you can either: 
 | 
Summary
Fixed cryptography assembly version conflicts by adding
System.Security.Cryptography.Pkcspackage reference withExcludeAssets="all"and updating the assembly resolver to load System.Security.Cryptography assemblies from the SDK.Test Results
given_a_library_with_project_reference.when_include_outputs_in_package_false_then_can_include_referenced_project_outputsnow passesThe package reference with
ExcludeAssets="all"prevents version conflicts while the assembly resolver ensures the correct version from the SDK is loaded at runtime.Original prompt
Fixes #658
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.