diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json deleted file mode 100644 index 509933bd..00000000 --- a/.config/dotnet-tools.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "version": 1, - "isRoot": true, - "tools": { - "fake-cli": { - "version": "5.20.1", - "commands": [ - "fake" - ] - } - } -} \ No newline at end of file diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml new file mode 100644 index 00000000..29e74899 --- /dev/null +++ b/.github/workflows/continuous.yml @@ -0,0 +1,47 @@ +# ------------------------------------------------------------------------------ +# +# +# This code was generated. +# +# - To turn off auto-generation set: +# +# [GitHubActions (AutoGenerate = false)] +# +# - To trigger manual generation invoke: +# +# nuke --generate-configuration GitHubActions_continuous --host GitHubActions +# +# +# ------------------------------------------------------------------------------ + +name: continuous + +on: + pull_request: + branches: + - master + - 'release/*' + +jobs: + windows-latest: + name: windows-latest + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: actions/setup-dotnet@v4 + with: + dotnet-version: | + 6.0.x + - name: Cache .nuke/temp, ~/.nuget/packages + uses: actions/cache@v4 + with: + path: | + .nuke/temp + ~/.nuget/packages + key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj') }} + - name: Run './build.cmd Verify Cover Pack' + run: ./build.cmd Verify Cover Pack --no-logo + env: + GitHubToken: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..42b5db08 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,59 @@ +# ------------------------------------------------------------------------------ +# +# +# This code was generated. +# +# - To turn off auto-generation set: +# +# [GitHubActions (AutoGenerate = false)] +# +# - To trigger manual generation invoke: +# +# nuke --generate-configuration GitHubActions_release --host GitHubActions +# +# +# ------------------------------------------------------------------------------ + +name: release + +on: + push: + tags: + - 'v*' + +jobs: + windows-latest: + name: windows-latest + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: actions/setup-dotnet@v4 + with: + dotnet-version: | + 6.0.x + - name: Cache .nuke/temp, ~/.nuget/packages + uses: actions/cache@v4 + with: + path: | + .nuke/temp + ~/.nuget/packages + key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj') }} + - name: Run './build.cmd Verify Cover Publish' + run: ./build.cmd Verify Cover Publish --no-logo + env: + GitHubToken: ${{ secrets.GITHUB_TOKEN }} + NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} + - uses: actions/upload-artifact@v4 + with: + name: testresults + path: artifacts/testresults + - uses: actions/upload-artifact@v4 + with: + name: reports + path: artifacts/reports + - uses: actions/upload-artifact@v4 + with: + name: packages + path: artifacts/packages diff --git a/.gitignore b/.gitignore index 17ac05c9..0bdc52e7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,47 +1,399 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results [Dd]ebug/ +[Dd]ebugPublic/ [Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ [Bb]in/ [Oo]bj/ -[Hh]elp/ +[Ll]og/ +[Ll]ogs/ -# User-specific files -*.suo -*.user +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ -# DotCover is a Code Coverage Tool -*.dotCover +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.tlog +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState # ReSharper is a .NET coding add-in _ReSharper*/ *.[Rr]e[Ss]harper *.DotSettings.user +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + # NCrunch _NCrunch_* .*crunch*.local.xml nCrunchTemp_* +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) +*.vbp + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files +*.ncb +*.aps + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + # FAKE - F# Make .fake/ -# JetBrains Rider -.idea/ +# CodeRush personal settings +.cr/personal -# Visual Studio 2015 cache/options directory -.vs/ +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ -# VS Code cache/options -.vscode/ +# Azure Stream Analytics local run output +ASALocalRun/ -# package files can be ignored because of the NuGet restore -**/packages/* +# MSBuild Binary and Structured Log +*.binlog -# Tmp modified files -*.orig +# NVidia Nsight GPU debugger configuration file +*.nvuser -# Temp build artifacts and tools -/build/ -.tmp/ +# MFractors (Xamarin productivity tool) working folder +.mfractor/ -# VIM tmp files -*.swp +# Local History for Visual Studio +.localhistory/ + +# Visual Studio History (VSHistory) files +.vshistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +# Local History for Visual Studio Code +.history/ + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp + +# JetBrains Rider +*.sln.iml +.idea/ \ No newline at end of file diff --git a/.nuke/build.schema.json b/.nuke/build.schema.json new file mode 100644 index 00000000..6958ca5a --- /dev/null +++ b/.nuke/build.schema.json @@ -0,0 +1,135 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Build Schema", + "$ref": "#/definitions/build", + "definitions": { + "build": { + "type": "object", + "properties": { + "CI": { + "type": "boolean", + "description": "Forces the continuous integration build flag" + }, + "Configuration": { + "type": "string", + "description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)", + "enum": [ + "Debug", + "Release", + "Verify" + ] + }, + "Continue": { + "type": "boolean", + "description": "Indicates to continue a previously failed build attempt" + }, + "github-token": { + "type": "string", + "description": "GitHub auth token", + "default": "Secrets must be entered via 'nuke :secrets [profile]'" + }, + "Help": { + "type": "boolean", + "description": "Shows the help text for this build assembly" + }, + "Host": { + "type": "string", + "description": "Host for execution. Default is 'automatic'", + "enum": [ + "AppVeyor", + "AzurePipelines", + "Bamboo", + "Bitbucket", + "Bitrise", + "GitHubActions", + "GitLab", + "Jenkins", + "Rider", + "SpaceAutomation", + "TeamCity", + "Terminal", + "TravisCI", + "VisualStudio", + "VSCode" + ] + }, + "NoLogo": { + "type": "boolean", + "description": "Disables displaying the NUKE logo" + }, + "NUGET_API_KEY": { + "type": "string", + "description": "NuGet API Key (secret)", + "default": "Secrets must be entered via 'nuke :secrets [profile]'" + }, + "Partition": { + "type": "string", + "description": "Partition to use on CI" + }, + "Plan": { + "type": "boolean", + "description": "Shows the execution plan (HTML)" + }, + "Profile": { + "type": "array", + "description": "Defines the profiles to load", + "items": { + "type": "string" + } + }, + "Root": { + "type": "string", + "description": "Root directory during build execution" + }, + "Skip": { + "type": "array", + "description": "List of targets to be skipped. Empty list skips all dependencies", + "items": { + "type": "string", + "enum": [ + "Clean", + "Compile", + "Cover", + "Pack", + "Publish", + "Restore", + "Test", + "Verify" + ] + } + }, + "Solution": { + "type": "string", + "description": "Path to a solution file that is automatically loaded" + }, + "Target": { + "type": "array", + "description": "List of targets to be invoked. Default is '{default_target}'", + "items": { + "type": "string", + "enum": [ + "Clean", + "Compile", + "Cover", + "Pack", + "Publish", + "Restore", + "Test", + "Verify" + ] + } + }, + "Verbosity": { + "type": "string", + "description": "Logging verbosity during build execution. Default is 'Normal'", + "enum": [ + "Minimal", + "Normal", + "Quiet", + "Verbose" + ] + } + } + } + } +} \ No newline at end of file diff --git a/.nuke/parameters.json b/.nuke/parameters.json new file mode 100644 index 00000000..da152299 --- /dev/null +++ b/.nuke/parameters.json @@ -0,0 +1,4 @@ +{ + "$schema": "./build.schema.json", + "Solution": "AutoFixture.sln" +} \ No newline at end of file diff --git a/AutoFixture.Tests.globalconfig b/AutoFixture.Tests.globalconfig new file mode 100644 index 00000000..2b8356f0 --- /dev/null +++ b/AutoFixture.Tests.globalconfig @@ -0,0 +1,654 @@ +is_global = true +global_level = 200 + +# NOTE: No section headers for configuration entries + +#### .NET Coding Conventions #### + +## Naming conventions ## + +#### Diagnostic configuration #### + +## Managed code analysis ## + +dotnet_diagnostic.CA1000.severity = none +dotnet_diagnostic.CA1001.severity = none +dotnet_diagnostic.CA1002.severity = none +dotnet_diagnostic.CA1003.severity = none +dotnet_diagnostic.CA1004.severity = none +dotnet_diagnostic.CA1005.severity = none +dotnet_diagnostic.CA1006.severity = none +dotnet_diagnostic.CA1007.severity = none +dotnet_diagnostic.CA1008.severity = none +dotnet_diagnostic.CA1009.severity = none +dotnet_diagnostic.CA1010.severity = none +dotnet_diagnostic.CA1011.severity = none +dotnet_diagnostic.CA1012.severity = none +dotnet_diagnostic.CA1013.severity = none +dotnet_diagnostic.CA1014.severity = none +dotnet_diagnostic.CA1016.severity = none +dotnet_diagnostic.CA1017.severity = none +dotnet_diagnostic.CA1018.severity = none +dotnet_diagnostic.CA1019.severity = none +dotnet_diagnostic.CA1020.severity = none +dotnet_diagnostic.CA1021.severity = none +dotnet_diagnostic.CA1023.severity = none +dotnet_diagnostic.CA1024.severity = none +dotnet_diagnostic.CA1025.severity = none +dotnet_diagnostic.CA1026.severity = none +dotnet_diagnostic.CA1027.severity = none +dotnet_diagnostic.CA1028.severity = none +dotnet_diagnostic.CA1030.severity = none +dotnet_diagnostic.CA1031.severity = none +dotnet_diagnostic.CA1032.severity = none +dotnet_diagnostic.CA1033.severity = none +dotnet_diagnostic.CA1034.severity = none +dotnet_diagnostic.CA1035.severity = none +dotnet_diagnostic.CA1036.severity = none +dotnet_diagnostic.CA1038.severity = none +dotnet_diagnostic.CA1039.severity = none +dotnet_diagnostic.CA1040.severity = none +dotnet_diagnostic.CA1041.severity = none +dotnet_diagnostic.CA1043.severity = none +dotnet_diagnostic.CA1044.severity = none +dotnet_diagnostic.CA1045.severity = none +dotnet_diagnostic.CA1046.severity = none +dotnet_diagnostic.CA1047.severity = none +dotnet_diagnostic.CA1048.severity = none +dotnet_diagnostic.CA1049.severity = none +dotnet_diagnostic.CA1050.severity = none +dotnet_diagnostic.CA1051.severity = none +dotnet_diagnostic.CA1052.severity = none +dotnet_diagnostic.CA1053.severity = none +dotnet_diagnostic.CA1054.severity = none +dotnet_diagnostic.CA1055.severity = none +dotnet_diagnostic.CA1056.severity = none +dotnet_diagnostic.CA1057.severity = none +dotnet_diagnostic.CA1058.severity = none +dotnet_diagnostic.CA1059.severity = none +dotnet_diagnostic.CA1060.severity = none +dotnet_diagnostic.CA1061.severity = none +dotnet_diagnostic.CA1062.severity = none +dotnet_diagnostic.CA1063.severity = none +dotnet_diagnostic.CA1064.severity = none +dotnet_diagnostic.CA1065.severity = none +dotnet_diagnostic.CA1300.severity = none +dotnet_diagnostic.CA1301.severity = none +dotnet_diagnostic.CA1302.severity = none +dotnet_diagnostic.CA1303.severity = none +dotnet_diagnostic.CA1304.severity = none +dotnet_diagnostic.CA1305.severity = none +dotnet_diagnostic.CA1306.severity = none +dotnet_diagnostic.CA1307.severity = none +dotnet_diagnostic.CA1308.severity = none +dotnet_diagnostic.CA1309.severity = none +dotnet_diagnostic.CA1400.severity = none +dotnet_diagnostic.CA1401.severity = none +dotnet_diagnostic.CA1402.severity = none +dotnet_diagnostic.CA1403.severity = none +dotnet_diagnostic.CA1404.severity = none +dotnet_diagnostic.CA1405.severity = none +dotnet_diagnostic.CA1406.severity = none +dotnet_diagnostic.CA1407.severity = none +dotnet_diagnostic.CA1408.severity = none +dotnet_diagnostic.CA1409.severity = none +dotnet_diagnostic.CA1410.severity = none +dotnet_diagnostic.CA1411.severity = none +dotnet_diagnostic.CA1412.severity = none +dotnet_diagnostic.CA1413.severity = none +dotnet_diagnostic.CA1414.severity = none +dotnet_diagnostic.CA1415.severity = none +dotnet_diagnostic.CA1500.severity = none +dotnet_diagnostic.CA1501.severity = none +dotnet_diagnostic.CA1502.severity = none +dotnet_diagnostic.CA1504.severity = none +dotnet_diagnostic.CA1505.severity = none +dotnet_diagnostic.CA1506.severity = none +dotnet_diagnostic.CA1600.severity = none +dotnet_diagnostic.CA1601.severity = none +dotnet_diagnostic.CA1700.severity = none +dotnet_diagnostic.CA1701.severity = none +dotnet_diagnostic.CA1702.severity = none +dotnet_diagnostic.CA1703.severity = none +dotnet_diagnostic.CA1704.severity = none +dotnet_diagnostic.CA1707.severity = none +dotnet_diagnostic.CA1708.severity = none +dotnet_diagnostic.CA1709.severity = none +dotnet_diagnostic.CA1710.severity = none +dotnet_diagnostic.CA1711.severity = none +dotnet_diagnostic.CA1712.severity = none +dotnet_diagnostic.CA1713.severity = none +dotnet_diagnostic.CA1714.severity = none +dotnet_diagnostic.CA1715.severity = none +dotnet_diagnostic.CA1716.severity = none +dotnet_diagnostic.CA1717.severity = none +dotnet_diagnostic.CA1719.severity = none +dotnet_diagnostic.CA1720.severity = none +dotnet_diagnostic.CA1721.severity = none +dotnet_diagnostic.CA1722.severity = none +dotnet_diagnostic.CA1724.severity = none +dotnet_diagnostic.CA1725.severity = none +dotnet_diagnostic.CA1726.severity = none +dotnet_diagnostic.CA1800.severity = none +dotnet_diagnostic.CA1801.severity = none +dotnet_diagnostic.CA1802.severity = none +dotnet_diagnostic.CA1804.severity = none +dotnet_diagnostic.CA1806.severity = none +dotnet_diagnostic.CA1809.severity = none +dotnet_diagnostic.CA1810.severity = none +dotnet_diagnostic.CA1811.severity = none +dotnet_diagnostic.CA1812.severity = none +dotnet_diagnostic.CA1813.severity = none +dotnet_diagnostic.CA1814.severity = none +dotnet_diagnostic.CA1815.severity = none +dotnet_diagnostic.CA1816.severity = none +dotnet_diagnostic.CA1819.severity = none +dotnet_diagnostic.CA1820.severity = none +dotnet_diagnostic.CA1821.severity = none +dotnet_diagnostic.CA1822.severity = none +dotnet_diagnostic.CA1823.severity = none +dotnet_diagnostic.CA1824.severity = none +dotnet_diagnostic.CA1825.severity = none +dotnet_diagnostic.CA1900.severity = none +dotnet_diagnostic.CA1901.severity = none +dotnet_diagnostic.CA1903.severity = none +dotnet_diagnostic.CA2000.severity = none +dotnet_diagnostic.CA2001.severity = none +dotnet_diagnostic.CA2002.severity = none +dotnet_diagnostic.CA2003.severity = none +dotnet_diagnostic.CA2004.severity = none +dotnet_diagnostic.CA2006.severity = none +dotnet_diagnostic.CA2100.severity = none +dotnet_diagnostic.CA2101.severity = none +dotnet_diagnostic.CA2102.severity = none +dotnet_diagnostic.CA2103.severity = none +dotnet_diagnostic.CA2104.severity = none +dotnet_diagnostic.CA2105.severity = none +dotnet_diagnostic.CA2106.severity = none +dotnet_diagnostic.CA2107.severity = none +dotnet_diagnostic.CA2108.severity = none +dotnet_diagnostic.CA2109.severity = none +dotnet_diagnostic.CA2111.severity = none +dotnet_diagnostic.CA2112.severity = none +dotnet_diagnostic.CA2114.severity = none +dotnet_diagnostic.CA2115.severity = none +dotnet_diagnostic.CA2116.severity = none +dotnet_diagnostic.CA2117.severity = none +dotnet_diagnostic.CA2118.severity = none +dotnet_diagnostic.CA2119.severity = none +dotnet_diagnostic.CA2120.severity = none +dotnet_diagnostic.CA2121.severity = none +dotnet_diagnostic.CA2122.severity = none +dotnet_diagnostic.CA2123.severity = none +dotnet_diagnostic.CA2124.severity = none +dotnet_diagnostic.CA2126.severity = none +dotnet_diagnostic.CA2130.severity = none +dotnet_diagnostic.CA2131.severity = none +dotnet_diagnostic.CA2132.severity = none +dotnet_diagnostic.CA2133.severity = none +dotnet_diagnostic.CA2134.severity = none +dotnet_diagnostic.CA2135.severity = none +dotnet_diagnostic.CA2136.severity = none +dotnet_diagnostic.CA2137.severity = none +dotnet_diagnostic.CA2138.severity = none +dotnet_diagnostic.CA2139.severity = none +dotnet_diagnostic.CA2140.severity = none +dotnet_diagnostic.CA2141.severity = none +dotnet_diagnostic.CA2142.severity = none +dotnet_diagnostic.CA2143.severity = none +dotnet_diagnostic.CA2144.severity = none +dotnet_diagnostic.CA2145.severity = none +dotnet_diagnostic.CA2146.severity = none +dotnet_diagnostic.CA2147.severity = none +dotnet_diagnostic.CA2149.severity = none +dotnet_diagnostic.CA2151.severity = none +dotnet_diagnostic.CA2200.severity = none +dotnet_diagnostic.CA2201.severity = none +dotnet_diagnostic.CA2202.severity = none +dotnet_diagnostic.CA2204.severity = none +dotnet_diagnostic.CA2205.severity = none +dotnet_diagnostic.CA2207.severity = none +dotnet_diagnostic.CA2208.severity = none +dotnet_diagnostic.CA2210.severity = none +dotnet_diagnostic.CA2211.severity = none +dotnet_diagnostic.CA2212.severity = none +dotnet_diagnostic.CA2213.severity = none +dotnet_diagnostic.CA2214.severity = none +dotnet_diagnostic.CA2215.severity = none +dotnet_diagnostic.CA2216.severity = none +dotnet_diagnostic.CA2217.severity = none +dotnet_diagnostic.CA2218.severity = none +dotnet_diagnostic.CA2219.severity = none +dotnet_diagnostic.CA2220.severity = none +dotnet_diagnostic.CA2221.severity = none +dotnet_diagnostic.CA2222.severity = none +dotnet_diagnostic.CA2223.severity = none +dotnet_diagnostic.CA2224.severity = none +dotnet_diagnostic.CA2225.severity = none +dotnet_diagnostic.CA2226.severity = none +dotnet_diagnostic.CA2227.severity = none +dotnet_diagnostic.CA2228.severity = none +dotnet_diagnostic.CA2229.severity = none +dotnet_diagnostic.CA2230.severity = none +dotnet_diagnostic.CA2231.severity = none +dotnet_diagnostic.CA2232.severity = none +dotnet_diagnostic.CA2233.severity = none +dotnet_diagnostic.CA2234.severity = none +dotnet_diagnostic.CA2235.severity = none +dotnet_diagnostic.CA2236.severity = none +dotnet_diagnostic.CA2237.severity = none +dotnet_diagnostic.CA2238.severity = none +dotnet_diagnostic.CA2239.severity = none +dotnet_diagnostic.CA2240.severity = none +dotnet_diagnostic.CA2241.severity = none +dotnet_diagnostic.CA2242.severity = none +dotnet_diagnostic.CA2243.severity = none +dotnet_diagnostic.CA5122.severity = none + +## Security analysis ## + +dotnet_diagnostic.CA2300.severity = none + +## Native code analysis ## + +dotnet_diagnostic.C26100.severity = none +dotnet_diagnostic.C26101.severity = none +dotnet_diagnostic.C26105.severity = none +dotnet_diagnostic.C26110.severity = none +dotnet_diagnostic.C26111.severity = none +dotnet_diagnostic.C26112.severity = none +dotnet_diagnostic.C26115.severity = none +dotnet_diagnostic.C26116.severity = none +dotnet_diagnostic.C26117.severity = none +dotnet_diagnostic.C26130.severity = none +dotnet_diagnostic.C26135.severity = none +dotnet_diagnostic.C26140.severity = none +dotnet_diagnostic.C26160.severity = none +dotnet_diagnostic.C26165.severity = none +dotnet_diagnostic.C26166.severity = none +dotnet_diagnostic.C26167.severity = none +dotnet_diagnostic.C28020.severity = none +dotnet_diagnostic.C28021.severity = none +dotnet_diagnostic.C28022.severity = none +dotnet_diagnostic.C28023.severity = none +dotnet_diagnostic.C28024.severity = none +dotnet_diagnostic.C28039.severity = none +dotnet_diagnostic.C28101.severity = none +dotnet_diagnostic.C28103.severity = none +dotnet_diagnostic.C28104.severity = none +dotnet_diagnostic.C28105.severity = none +dotnet_diagnostic.C28106.severity = none +dotnet_diagnostic.C28107.severity = none +dotnet_diagnostic.C28108.severity = none +dotnet_diagnostic.C28109.severity = none +dotnet_diagnostic.C28110.severity = none +dotnet_diagnostic.C28111.severity = none +dotnet_diagnostic.C28112.severity = none +dotnet_diagnostic.C28113.severity = none +dotnet_diagnostic.C28114.severity = none +dotnet_diagnostic.C28120.severity = none +dotnet_diagnostic.C28121.severity = none +dotnet_diagnostic.C28122.severity = none +dotnet_diagnostic.C28123.severity = none +dotnet_diagnostic.C28124.severity = none +dotnet_diagnostic.C28125.severity = none +dotnet_diagnostic.C28126.severity = none +dotnet_diagnostic.C28127.severity = none +dotnet_diagnostic.C28128.severity = none +dotnet_diagnostic.C28129.severity = none +dotnet_diagnostic.C28131.severity = none +dotnet_diagnostic.C28132.severity = none +dotnet_diagnostic.C28133.severity = none +dotnet_diagnostic.C28134.severity = none +dotnet_diagnostic.C28135.severity = none +dotnet_diagnostic.C28137.severity = none +dotnet_diagnostic.C28138.severity = none +dotnet_diagnostic.C28141.severity = none +dotnet_diagnostic.C28143.severity = none +dotnet_diagnostic.C28144.severity = none +dotnet_diagnostic.C28145.severity = none +dotnet_diagnostic.C28146.severity = none +dotnet_diagnostic.C28147.severity = none +dotnet_diagnostic.C28150.severity = none +dotnet_diagnostic.C28151.severity = none +dotnet_diagnostic.C28152.severity = none +dotnet_diagnostic.C28153.severity = none +dotnet_diagnostic.C28156.severity = none +dotnet_diagnostic.C28157.severity = none +dotnet_diagnostic.C28158.severity = none +dotnet_diagnostic.C28159.severity = none +dotnet_diagnostic.C28160.severity = none +dotnet_diagnostic.C28161.severity = none +dotnet_diagnostic.C28162.severity = none +dotnet_diagnostic.C28163.severity = none +dotnet_diagnostic.C28164.severity = none +dotnet_diagnostic.C28165.severity = none +dotnet_diagnostic.C28166.severity = none +dotnet_diagnostic.C28167.severity = none +dotnet_diagnostic.C28168.severity = none +dotnet_diagnostic.C28169.severity = none +dotnet_diagnostic.C28170.severity = none +dotnet_diagnostic.C28171.severity = none +dotnet_diagnostic.C28172.severity = none +dotnet_diagnostic.C28173.severity = none +dotnet_diagnostic.C28175.severity = none +dotnet_diagnostic.C28176.severity = none +dotnet_diagnostic.C28182.severity = none +dotnet_diagnostic.C28183.severity = none +dotnet_diagnostic.C28193.severity = none +dotnet_diagnostic.C28194.severity = none +dotnet_diagnostic.C28195.severity = none +dotnet_diagnostic.C28196.severity = none +dotnet_diagnostic.C28197.severity = none +dotnet_diagnostic.C28198.severity = none +dotnet_diagnostic.C28199.severity = none +dotnet_diagnostic.C28202.severity = none +dotnet_diagnostic.C28203.severity = none +dotnet_diagnostic.C28204.severity = none +dotnet_diagnostic.C28205.severity = none +dotnet_diagnostic.C28206.severity = none +dotnet_diagnostic.C28207.severity = none +dotnet_diagnostic.C28208.severity = none +dotnet_diagnostic.C28209.severity = none +dotnet_diagnostic.C28210.severity = none +dotnet_diagnostic.C28211.severity = none +dotnet_diagnostic.C28212.severity = none +dotnet_diagnostic.C28213.severity = none +dotnet_diagnostic.C28214.severity = none +dotnet_diagnostic.C28215.severity = none +dotnet_diagnostic.C28216.severity = none +dotnet_diagnostic.C28217.severity = none +dotnet_diagnostic.C28218.severity = none +dotnet_diagnostic.C28219.severity = none +dotnet_diagnostic.C28220.severity = none +dotnet_diagnostic.C28221.severity = none +dotnet_diagnostic.C28222.severity = none +dotnet_diagnostic.C28223.severity = none +dotnet_diagnostic.C28224.severity = none +dotnet_diagnostic.C28225.severity = none +dotnet_diagnostic.C28226.severity = none +dotnet_diagnostic.C28227.severity = none +dotnet_diagnostic.C28228.severity = none +dotnet_diagnostic.C28229.severity = none +dotnet_diagnostic.C28230.severity = none +dotnet_diagnostic.C28231.severity = none +dotnet_diagnostic.C28232.severity = none +dotnet_diagnostic.C28233.severity = none +dotnet_diagnostic.C28234.severity = none +dotnet_diagnostic.C28235.severity = none +dotnet_diagnostic.C28236.severity = none +dotnet_diagnostic.C28237.severity = none +dotnet_diagnostic.C28238.severity = none +dotnet_diagnostic.C28239.severity = none +dotnet_diagnostic.C28240.severity = none +dotnet_diagnostic.C28241.severity = none +dotnet_diagnostic.C28243.severity = none +dotnet_diagnostic.C28244.severity = none +dotnet_diagnostic.C28245.severity = none +dotnet_diagnostic.C28246.severity = none +dotnet_diagnostic.C28250.severity = none +dotnet_diagnostic.C28251.severity = none +dotnet_diagnostic.C28252.severity = none +dotnet_diagnostic.C28253.severity = none +dotnet_diagnostic.C28254.severity = none +dotnet_diagnostic.C28260.severity = none +dotnet_diagnostic.C28262.severity = none +dotnet_diagnostic.C28263.severity = none +dotnet_diagnostic.C28266.severity = none +dotnet_diagnostic.C28267.severity = none +dotnet_diagnostic.C28272.severity = none +dotnet_diagnostic.C28273.severity = none +dotnet_diagnostic.C28275.severity = none +dotnet_diagnostic.C28278.severity = none +dotnet_diagnostic.C28279.severity = none +dotnet_diagnostic.C28280.severity = none +dotnet_diagnostic.C28282.severity = none +dotnet_diagnostic.C28283.severity = none +dotnet_diagnostic.C28284.severity = none +dotnet_diagnostic.C28285.severity = none +dotnet_diagnostic.C28286.severity = none +dotnet_diagnostic.C28287.severity = none +dotnet_diagnostic.C28288.severity = none +dotnet_diagnostic.C28289.severity = none +dotnet_diagnostic.C28290.severity = none +dotnet_diagnostic.C28291.severity = none +dotnet_diagnostic.C28300.severity = none +dotnet_diagnostic.C28301.severity = none +dotnet_diagnostic.C28302.severity = none +dotnet_diagnostic.C28303.severity = none +dotnet_diagnostic.C28304.severity = none +dotnet_diagnostic.C28305.severity = none +dotnet_diagnostic.C28306.severity = none +dotnet_diagnostic.C28307.severity = none +dotnet_diagnostic.C28308.severity = none +dotnet_diagnostic.C28309.severity = none +dotnet_diagnostic.C28350.severity = none +dotnet_diagnostic.C28351.severity = none +dotnet_diagnostic.C28601.severity = none +dotnet_diagnostic.C28602.severity = none +dotnet_diagnostic.C28604.severity = none +dotnet_diagnostic.C28615.severity = none +dotnet_diagnostic.C28616.severity = none +dotnet_diagnostic.C28617.severity = none +dotnet_diagnostic.C28623.severity = none +dotnet_diagnostic.C28624.severity = none +dotnet_diagnostic.C28625.severity = none +dotnet_diagnostic.C28636.severity = none +dotnet_diagnostic.C28637.severity = none +dotnet_diagnostic.C28638.severity = none +dotnet_diagnostic.C28639.severity = none +dotnet_diagnostic.C28640.severity = none +dotnet_diagnostic.C28645.severity = none +dotnet_diagnostic.C28648.severity = none +dotnet_diagnostic.C28649.severity = none +dotnet_diagnostic.C28650.severity = none +dotnet_diagnostic.C28714.severity = none +dotnet_diagnostic.C28715.severity = none +dotnet_diagnostic.C28716.severity = none +dotnet_diagnostic.C28717.severity = none +dotnet_diagnostic.C28719.severity = none +dotnet_diagnostic.C28720.severity = none +dotnet_diagnostic.C28721.severity = none +dotnet_diagnostic.C28726.severity = none +dotnet_diagnostic.C28727.severity = none +dotnet_diagnostic.C28730.severity = none +dotnet_diagnostic.C28735.severity = none +dotnet_diagnostic.C28736.severity = none +dotnet_diagnostic.C28750.severity = none +dotnet_diagnostic.C28751.severity = none +dotnet_diagnostic.C6001.severity = none +dotnet_diagnostic.C6011.severity = none +dotnet_diagnostic.C6014.severity = none +dotnet_diagnostic.C6029.severity = none +dotnet_diagnostic.C6031.severity = none +dotnet_diagnostic.C6053.severity = none +dotnet_diagnostic.C6054.severity = none +dotnet_diagnostic.C6059.severity = none +dotnet_diagnostic.C6063.severity = none +dotnet_diagnostic.C6064.severity = none +dotnet_diagnostic.C6066.severity = none +dotnet_diagnostic.C6067.severity = none +dotnet_diagnostic.C6101.severity = none +dotnet_diagnostic.C6200.severity = none +dotnet_diagnostic.C6201.severity = none +dotnet_diagnostic.C6211.severity = none +dotnet_diagnostic.C6214.severity = none +dotnet_diagnostic.C6215.severity = none +dotnet_diagnostic.C6216.severity = none +dotnet_diagnostic.C6217.severity = none +dotnet_diagnostic.C6219.severity = none +dotnet_diagnostic.C6220.severity = none +dotnet_diagnostic.C6221.severity = none +dotnet_diagnostic.C6225.severity = none +dotnet_diagnostic.C6226.severity = none +dotnet_diagnostic.C6230.severity = none +dotnet_diagnostic.C6235.severity = none +dotnet_diagnostic.C6236.severity = none +dotnet_diagnostic.C6237.severity = none +dotnet_diagnostic.C6239.severity = none +dotnet_diagnostic.C6240.severity = none +dotnet_diagnostic.C6242.severity = none +dotnet_diagnostic.C6244.severity = none +dotnet_diagnostic.C6246.severity = none +dotnet_diagnostic.C6248.severity = none +dotnet_diagnostic.C6250.severity = none +dotnet_diagnostic.C6255.severity = none +dotnet_diagnostic.C6258.severity = none +dotnet_diagnostic.C6259.severity = none +dotnet_diagnostic.C6260.severity = none +dotnet_diagnostic.C6262.severity = none +dotnet_diagnostic.C6263.severity = none +dotnet_diagnostic.C6268.severity = none +dotnet_diagnostic.C6269.severity = none +dotnet_diagnostic.C6270.severity = none +dotnet_diagnostic.C6271.severity = none +dotnet_diagnostic.C6272.severity = none +dotnet_diagnostic.C6273.severity = none +dotnet_diagnostic.C6274.severity = none +dotnet_diagnostic.C6276.severity = none +dotnet_diagnostic.C6277.severity = none +dotnet_diagnostic.C6278.severity = none +dotnet_diagnostic.C6279.severity = none +dotnet_diagnostic.C6280.severity = none +dotnet_diagnostic.C6281.severity = none +dotnet_diagnostic.C6282.severity = none +dotnet_diagnostic.C6283.severity = none +dotnet_diagnostic.C6284.severity = none +dotnet_diagnostic.C6285.severity = none +dotnet_diagnostic.C6286.severity = none +dotnet_diagnostic.C6287.severity = none +dotnet_diagnostic.C6288.severity = none +dotnet_diagnostic.C6289.severity = none +dotnet_diagnostic.C6290.severity = none +dotnet_diagnostic.C6291.severity = none +dotnet_diagnostic.C6292.severity = none +dotnet_diagnostic.C6293.severity = none +dotnet_diagnostic.C6294.severity = none +dotnet_diagnostic.C6295.severity = none +dotnet_diagnostic.C6296.severity = none +dotnet_diagnostic.C6297.severity = none +dotnet_diagnostic.C6298.severity = none +dotnet_diagnostic.C6299.severity = none +dotnet_diagnostic.C6302.severity = none +dotnet_diagnostic.C6303.severity = none +dotnet_diagnostic.C6305.severity = none +dotnet_diagnostic.C6306.severity = none +dotnet_diagnostic.C6308.severity = none +dotnet_diagnostic.C6310.severity = none +dotnet_diagnostic.C6312.severity = none +dotnet_diagnostic.C6313.severity = none +dotnet_diagnostic.C6314.severity = none +dotnet_diagnostic.C6315.severity = none +dotnet_diagnostic.C6316.severity = none +dotnet_diagnostic.C6317.severity = none +dotnet_diagnostic.C6318.severity = none +dotnet_diagnostic.C6319.severity = none +dotnet_diagnostic.C6320.severity = none +dotnet_diagnostic.C6322.severity = none +dotnet_diagnostic.C6323.severity = none +dotnet_diagnostic.C6324.severity = none +dotnet_diagnostic.C6326.severity = none +dotnet_diagnostic.C6328.severity = none +dotnet_diagnostic.C6329.severity = none +dotnet_diagnostic.C6330.severity = none +dotnet_diagnostic.C6331.severity = none +dotnet_diagnostic.C6332.severity = none +dotnet_diagnostic.C6333.severity = none +dotnet_diagnostic.C6334.severity = none +dotnet_diagnostic.C6335.severity = none +dotnet_diagnostic.C6336.severity = none +dotnet_diagnostic.C6340.severity = none +dotnet_diagnostic.C6381.severity = none +dotnet_diagnostic.C6383.severity = none +dotnet_diagnostic.C6384.severity = none +dotnet_diagnostic.C6385.severity = none +dotnet_diagnostic.C6386.severity = none +dotnet_diagnostic.C6387.severity = none +dotnet_diagnostic.C6388.severity = none +dotnet_diagnostic.C6400.severity = none +dotnet_diagnostic.C6401.severity = none +dotnet_diagnostic.C6411.severity = none +dotnet_diagnostic.C6412.severity = none +dotnet_diagnostic.C6500.severity = none +dotnet_diagnostic.C6501.severity = none +dotnet_diagnostic.C6503.severity = none +dotnet_diagnostic.C6504.severity = none +dotnet_diagnostic.C6505.severity = none +dotnet_diagnostic.C6506.severity = none +dotnet_diagnostic.C6508.severity = none +dotnet_diagnostic.C6509.severity = none +dotnet_diagnostic.C6510.severity = none +dotnet_diagnostic.C6511.severity = none +dotnet_diagnostic.C6513.severity = none +dotnet_diagnostic.C6514.severity = none +dotnet_diagnostic.C6515.severity = none +dotnet_diagnostic.C6516.severity = none +dotnet_diagnostic.C6517.severity = none +dotnet_diagnostic.C6518.severity = none +dotnet_diagnostic.C6522.severity = none +dotnet_diagnostic.C6525.severity = none +dotnet_diagnostic.C6527.severity = none +dotnet_diagnostic.C6530.severity = none +dotnet_diagnostic.C6540.severity = none +dotnet_diagnostic.C6551.severity = none +dotnet_diagnostic.C6552.severity = none +dotnet_diagnostic.C6701.severity = none +dotnet_diagnostic.C6702.severity = none +dotnet_diagnostic.C6703.severity = none +dotnet_diagnostic.C6704.severity = none +dotnet_diagnostic.C6705.severity = none +dotnet_diagnostic.C6706.severity = none +dotnet_diagnostic.C6707.severity = none +dotnet_diagnostic.C6993.severity = none +dotnet_diagnostic.C6995.severity = none +dotnet_diagnostic.C6997.severity = none + + +## Runtime analysis ## + +dotnet_diagnostic.CA1825.severity = none # CA1825: Avoid zero-length array allocations + +## Tasks analysis ## + +dotnet_diagnostic.RS0018.severity = none + +## Documentation ## + +dotnet_diagnostic.RS0010.severity = none + +## StyleCop Analyzers ## + +dotnet_diagnostic.SA0001.severity = none # SA0001: XML comment analysis is disabled due to project configuration +dotnet_diagnostic.SA1116.severity = none # SA1116: The parameters should begin on the line after the declaration, whenever the parameter span across multiple line +dotnet_diagnostic.SA1117.severity = none # SA1117: The parameters should all be placed on the same line or each parameter should be placed on its own line. +dotnet_diagnostic.SA1118.severity = none # SA1118: The parameter spans multiple lines +dotnet_diagnostic.SA1133.severity = none # SA1133: Each attribute should be placed in its own set of square brackets. +dotnet_diagnostic.SA1200.severity = none # SA1200: Using directive should appear within a namespace declaration +dotnet_diagnostic.SA1201.severity = none # SA1201: A property should not follow a method +dotnet_diagnostic.SA1202.severity = none # SA1202: 'public' members should come before 'private' members +dotnet_diagnostic.SA1203.severity = none # SA1203: Constant fields should appear before non-constant fields +dotnet_diagnostic.SA1204.severity = none # SA1204: Static members should appear before non-static members +dotnet_diagnostic.SA1214.severity = none # SA1214: Readonly fields should appear before non-readonly fields +dotnet_diagnostic.SA1401.severity = none # SA1401: Field should be private +dotnet_diagnostic.SA1402.severity = none # SA1402: File may only contain a single type +dotnet_diagnostic.SA1413.severity = none # SA1413: Use trailing comma in multi-line initializers +dotnet_diagnostic.SA1501.severity = none # SA1501: Statement should not be on a single line +dotnet_diagnostic.SA1503.severity = none # SA1503: Braces should not be omitted +dotnet_diagnostic.SA1513.severity = none # SA1513: Closing brace should be followed by blank line +dotnet_diagnostic.SA1515.severity = none # SA1515: Single-line comment should be preceded by blank line +dotnet_diagnostic.SA1516.severity = none # SA1516: Elements should be separated by blank line +dotnet_diagnostic.SA1600.severity = none # SA1600: Elements should be documented +dotnet_diagnostic.SA1604.severity = none # SA1604: Element documentation should have summary +dotnet_diagnostic.SA1610.severity = none # SA1610: Property documentation should have value text +dotnet_diagnostic.SA1611.severity = none # SA1611: The documentation for parameter 'predicate' is missing +dotnet_diagnostic.SA1612.severity = none # SA1612: The parameter documentation for 'context' should be at position 1. +dotnet_diagnostic.SA1614.severity = none # SA1614: Element parameter documentation should have text +dotnet_diagnostic.SA1615.severity = none # SA1615: Element return value should be documented +dotnet_diagnostic.SA1616.severity = none # SA1616: Element return value documentation should have text +dotnet_diagnostic.SA1618.severity = none # SA1618: The documentation for type parameter 'TProperty' is missing +dotnet_diagnostic.SA1622.severity = none # SA1622: Generic type parameter documentation should have text. +dotnet_diagnostic.SA1623.severity = none # SA1623: The property's documentation summary text should begin with: 'Gets' +dotnet_diagnostic.SA1625.severity = none # SA1625: Element documentation should not be copied and pasted +dotnet_diagnostic.SA1627.severity = none # SA1627: The documentation text within the \'exception\' tag should not be empty. +dotnet_diagnostic.SA1633.severity = none # SA1633: The file header is missing or not located at the top of the file. +dotnet_diagnostic.SA1642.severity = none # SA1642: Constructor summary documentation should begin with standard text diff --git a/AutoFixture.globalconfig b/AutoFixture.globalconfig new file mode 100644 index 00000000..297b7df2 --- /dev/null +++ b/AutoFixture.globalconfig @@ -0,0 +1,56 @@ +is_global = true +global_level = 100 + +# NOTE: No section headers for configuration entries + +#### .NET Coding Conventions #### + +## Naming conventions ## + +#### Diagnostic configuration #### + +## Managed code analysis ## + +dotnet_diagnostic.CA1006.severity = none # CA1006: Do not nest generic types in member signatures +dotnet_diagnostic.CA1020.severity = none # CA1020: Avoid namespaces with few types +dotnet_diagnostic.CA1303.severity = none # CA1303: Do not pass literals as localized parameters +dotnet_diagnostic.CA2243.severity = none # CA2243: Attribute string literals should parse correctly + +## Runtime analysis ## + +dotnet_diagnostic.CA1825.severity = none # CA1825: Avoid zero-length array allocations + +## Security ## + +dotnet_diagnostic.CA5394.severity = none # CA5394: Do not use insecure randomness + +## StyleCop Analyzers ## + +dotnet_diagnostic.SA1116.severity = none # SA1116: The parameters should begin on the line after the declaration, whenever the parameter span across multiple line +dotnet_diagnostic.SA1117.severity = none # SA1117: The parameters should all be placed on the same line or each parameter should be placed on its own line. +dotnet_diagnostic.SA1118.severity = none # SA1118: The parameter spans multiple lines +dotnet_diagnostic.SA1200.severity = none # SA1200: Using directive should appear within a namespace declaration +dotnet_diagnostic.SA1201.severity = none # SA1201: A property should not follow a method +dotnet_diagnostic.SA1202.severity = none # SA1202: 'public' members should come before 'private' members +dotnet_diagnostic.SA1203.severity = none # SA1203: Constant fields should appear before non-constant fields +dotnet_diagnostic.SA1204.severity = none # SA1204: Static members should appear before non-static members +dotnet_diagnostic.SA1214.severity = none # SA1214: Readonly fields should appear before non-readonly fields +dotnet_diagnostic.SA1413.severity = none # SA1413: Use trailing comma in multi-line initializers +dotnet_diagnostic.SA1501.severity = none # SA1501: Statement should not be on a single line +dotnet_diagnostic.SA1503.severity = none # SA1503: Braces should not be omitted +dotnet_diagnostic.SA1513.severity = none # SA1513: Closing brace should be followed by blank line +dotnet_diagnostic.SA1600.severity = none # SA1600: Elements should be documented +dotnet_diagnostic.SA1604.severity = none # SA1604: Element documentation should have summary +dotnet_diagnostic.SA1610.severity = none # SA1610: Property documentation should have value text +dotnet_diagnostic.SA1611.severity = none # SA1611: The documentation for parameter 'predicate' is missing +dotnet_diagnostic.SA1612.severity = none # SA1612: The parameter documentation for 'context' should be at position 1. +dotnet_diagnostic.SA1614.severity = none # SA1614: Element parameter documentation should have text +dotnet_diagnostic.SA1615.severity = none # SA1615: Element return value should be documented +dotnet_diagnostic.SA1616.severity = none # SA1616: Element return value documentation should have text +dotnet_diagnostic.SA1618.severity = none # SA1618: The documentation for type parameter 'TProperty' is missing +dotnet_diagnostic.SA1622.severity = none # SA1622: Generic type parameter documentation should have text. +dotnet_diagnostic.SA1623.severity = none # SA1623: The property's documentation summary text should begin with: 'Gets' +dotnet_diagnostic.SA1625.severity = none # SA1625: Element documentation should not be copied and pasted +dotnet_diagnostic.SA1627.severity = none # SA1627: The documentation text within the \'exception\' tag should not be empty. +dotnet_diagnostic.SA1633.severity = none # SA1633: The file header is missing or not located at the top of the file. +dotnet_diagnostic.SA1642.severity = none # SA1642: Constructor summary documentation should begin with standard text \ No newline at end of file diff --git a/AutoFixture.sln b/AutoFixture.sln new file mode 100644 index 00000000..3ce6c3f7 --- /dev/null +++ b/AutoFixture.sln @@ -0,0 +1,63 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.4.33205.214 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestTypeFoundation", "Src\TestTypeFoundation\TestTypeFoundation.csproj", "{7FF65787-F462-4204-BB9D-60B0D1BB6CC1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFixture.xUnit", "Src\AutoFixture.xUnit\AutoFixture.xUnit.csproj", "{266B9F0E-28E5-47CA-9816-ACB6737E7E4D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFixture.xUnit.UnitTest", "Src\AutoFixture.xUnit.UnitTest\AutoFixture.xUnit.UnitTest.csproj", "{14FADDF9-F0D2-4BD4-B285-FDDAB5762CC4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F0A01F00-72C7-4CE4-8BA4-9EB178B72329}" + ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig + .gitattributes = .gitattributes + .gitignore = .gitignore + AutoFixture.globalconfig = AutoFixture.globalconfig + AutoFixture.Tests.globalconfig = AutoFixture.Tests.globalconfig + CODE_OF_CONDUCT.md = CODE_OF_CONDUCT.md + Common.props = Common.props + Common.Test.props = Common.Test.props + CONTRIBUTING.md = CONTRIBUTING.md + LICENCE.txt = LICENCE.txt + README.md = README.md + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "_build", "build\_build.csproj", "{16506C81-BE25-498B-AEE8-E14D0E6F0108}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + Verify|Any CPU = Verify|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7FF65787-F462-4204-BB9D-60B0D1BB6CC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7FF65787-F462-4204-BB9D-60B0D1BB6CC1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7FF65787-F462-4204-BB9D-60B0D1BB6CC1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7FF65787-F462-4204-BB9D-60B0D1BB6CC1}.Release|Any CPU.Build.0 = Release|Any CPU + {7FF65787-F462-4204-BB9D-60B0D1BB6CC1}.Verify|Any CPU.ActiveCfg = Verify|Any CPU + {7FF65787-F462-4204-BB9D-60B0D1BB6CC1}.Verify|Any CPU.Build.0 = Verify|Any CPU + {266B9F0E-28E5-47CA-9816-ACB6737E7E4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {266B9F0E-28E5-47CA-9816-ACB6737E7E4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {266B9F0E-28E5-47CA-9816-ACB6737E7E4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {266B9F0E-28E5-47CA-9816-ACB6737E7E4D}.Release|Any CPU.Build.0 = Release|Any CPU + {266B9F0E-28E5-47CA-9816-ACB6737E7E4D}.Verify|Any CPU.ActiveCfg = Verify|Any CPU + {266B9F0E-28E5-47CA-9816-ACB6737E7E4D}.Verify|Any CPU.Build.0 = Verify|Any CPU + {14FADDF9-F0D2-4BD4-B285-FDDAB5762CC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {14FADDF9-F0D2-4BD4-B285-FDDAB5762CC4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {14FADDF9-F0D2-4BD4-B285-FDDAB5762CC4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {14FADDF9-F0D2-4BD4-B285-FDDAB5762CC4}.Release|Any CPU.Build.0 = Release|Any CPU + {14FADDF9-F0D2-4BD4-B285-FDDAB5762CC4}.Verify|Any CPU.ActiveCfg = Verify|Any CPU + {14FADDF9-F0D2-4BD4-B285-FDDAB5762CC4}.Verify|Any CPU.Build.0 = Verify|Any CPU + {16506C81-BE25-498B-AEE8-E14D0E6F0108}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {16506C81-BE25-498B-AEE8-E14D0E6F0108}.Release|Any CPU.ActiveCfg = Release|Any CPU + {16506C81-BE25-498B-AEE8-E14D0E6F0108}.Verify|Any CPU.ActiveCfg = Debug|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {3773F071-12A7-4E2D-93DE-EB4AD04D2CB9} + EndGlobalSection +EndGlobal diff --git a/Src/All.sln.DotSettings b/AutoFixture.sln.DotSettings similarity index 83% rename from Src/All.sln.DotSettings rename to AutoFixture.sln.DotSettings index 4219b5da..dac263b9 100644 --- a/Src/All.sln.DotSettings +++ b/AutoFixture.sln.DotSettings @@ -1,6 +1,7 @@ - + SUGGESTION True + public private protected internal file static new abstract virtual sealed readonly override extern unsafe volatile async required 1 1 1 @@ -12,6 +13,7 @@ True True <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy><Descriptor Staticness="Instance" AccessRightKinds="Private" Description="Instance fields (private)"><ElementKinds><Kind Name="FIELD" /><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy> True True True @@ -21,6 +23,7 @@ True True True + True True True xUnit fact template diff --git a/Src/AutoFixture.snk b/AutoFixture.snk similarity index 100% rename from Src/AutoFixture.snk rename to AutoFixture.snk diff --git a/Build.fsx b/Build.fsx deleted file mode 100644 index 412c2fe1..00000000 --- a/Build.fsx +++ /dev/null @@ -1,352 +0,0 @@ -#r "paket: -nuget Fake.BuildServer.AppVeyor -nuget Fake.Core.Environment -nuget Fake.Core.Target -nuget Fake.Core.Xml -nuget Fake.DotNet -nuget Fake.DotNet.Cli -nuget Fake.DotNet.MsBuild -nuget Fake.DotNet.NuGet -nuget Fake.DotNet.Testing.NUnit -nuget Fake.IO.FileSystem -nuget Fake.IO.Zip -nuget Fake.Tools.Git -nuget Fake.Testing.Common -" - -#load ".fake/build.fsx/intellisense.fsx" - -open System -open System.Text.RegularExpressions - -open Fake.BuildServer; -open Fake.Core; -open Fake.Core.String.Operators -open Fake.Core.TargetOperators -open Fake.DotNet; -open Fake.IO -open Fake.IO.Globbing.Operators -open Fake.IO.FileSystemOperators -open Fake.Tools; - -let buildDir = Environment.environVarOrDefault "BUILD_DIR" "build" |> Path.getFullName -let buildToolsDir = buildDir "tools" -let testResultsFolder = buildDir "TestResults" |> Path.getFullName -let nuGetOutputFolder = buildDir "NuGetPackages" -let nuGetPackages = !! (nuGetOutputFolder "*.nupkg") -let sourcesDirPath = "src" -let solutionPath = sourcesDirPath "All.sln" |> Path.getFullName -let buildConfiguration = DotNet.BuildConfiguration.fromEnvironVarOrDefault "BUILD_CONFIGURATION" DotNet.BuildConfiguration.Release -let buildVerbosity = match Environment.environVarOrDefault "BUILD_VERBOSITY" "" |> String.toLower with - | "quiet" | "q" -> Quiet - | "minimal" | "m" -> Minimal - | "normal" | "n" -> Normal - | "detailed" | "d" -> Detailed - | "diagnostic" | "diag" -> Diagnostic - | _ -> Minimal - - -type BuildVersionCalculationSource = { Major: int; Minor: int; Revision: int; PreSuffix: string; - CommitsNum: int; Sha: string; BuildNumber: int } -let getVersionSourceFromGit buildNumber = - // The --fist-parent flag is required to correctly work for vNext branch. - // Example of output for a release tag: v3.50.2-288-g64fd5c5b, for a prerelease tag: v3.50.2-alpha1-288-g64fd5c5b. - let desc = Git.CommandHelper.runSimpleGitCommand "" "describe --tags --long --abbrev=40 --first-parent --match=v*" - - // Previously repository contained a few broken tags like "v.3.21.1". They were removed, but could still exist - // in forks. We handle them as well to not fail on such repositories. - let result = Regex.Match(desc, - @"^v(\.)?(?\d+)\.(?\d+)\.(?\d+)(?
-\w+\d*)?-(?\d+)-g(?[a-z0-9]+)$",
-                             RegexOptions.IgnoreCase)
-                      .Groups
-
-    let getMatch (name:string) = result.[name].Value
-
-    { Major = getMatch "maj" |> int
-      Minor = getMatch "min" |> int
-      Revision = getMatch "rev" |> int
-      PreSuffix = getMatch "pre"
-      CommitsNum = getMatch "num" |> int
-      Sha = getMatch "sha"
-      BuildNumber = buildNumber
-    }
-
-type BuildVersionInfo = { AssemblyVersion:string; FileVersion:string; InfoVersion:string; NugetVersion:string; CommitHash: string;
-                          Source: Option }
-let calculateVersion source =
-    let s = source
-    let (major, minor, revision, preReleaseSuffix, commitsNum, sha, buildNumber) =
-        (s.Major, s.Minor, s.Revision, s.PreSuffix, s.CommitsNum, s.Sha, s.BuildNumber)
-
-    let assemblyVersion = sprintf "%d.%d.0.0" major minor
-    let fileVersion = sprintf "%d.%d.%d.%d" major minor revision buildNumber
-    
-    // If number of commits since last tag is greater than zero, we append another identifier with number of commits.
-    // The produced version is larger than the last tag version.
-    // If we are on a tag, we use version without modification.
-    // Examples of output: 3.50.2.1, 3.50.2.215, 3.50.1-rc1.3, 3.50.1-rc3.35
-    let nugetVersion = match commitsNum with
-                       | 0 -> sprintf "%d.%d.%d%s" major minor revision preReleaseSuffix
-                       | _ -> sprintf "%d.%d.%d%s.%d" major minor revision preReleaseSuffix commitsNum
-
-    let infoVersion = match commitsNum with
-                      | 0 -> nugetVersion
-                      | _ -> sprintf "%s-%s" nugetVersion sha
-
-    { AssemblyVersion=assemblyVersion; FileVersion=fileVersion; InfoVersion=infoVersion; NugetVersion=nugetVersion; CommitHash=s.Sha;
-      Source = Some source }
-
-// Calculate version that should be used for the build. Define globally as data might be required by multiple targets.
-// Please never name the build parameter with version as "Version" - it might be consumed by the MSBuild, override 
-// the defined properties and break some tasks (e.g. NuGet restore).
-let mutable buildVersion = match Environment.environVarOrDefault "BUILD_VERSION" "git" with
-                           | "git"       -> Environment.environVarOrDefault "BUILD_NUMBER" "0"
-                                            |> int
-                                            |> getVersionSourceFromGit
-                                            |> calculateVersion
-
-                           | assemblyVer -> { AssemblyVersion = assemblyVer
-                                              FileVersion = Environment.environVarOrDefault "BUILD_FILE_VERSION" assemblyVer
-                                              InfoVersion = Environment.environVarOrDefault "BUILD_INFO_VERSION" assemblyVer
-                                              NugetVersion = Environment.environVarOrDefault "BUILD_NUGET_VERSION" assemblyVer
-                                              CommitHash = Environment.environVarOrDefault "BUILD_COMMIT_HASH" ""
-                                              Source = None }
-
-let setVNextBranchVersion vNextVersion =
-    buildVersion <-
-        match buildVersion.Source with
-        // Don't update version if it was explicitly specified.
-        | None                                -> buildVersion
-        // Don't update version if tag with current major version is already present (e.g. rc is released).
-        | Some s when s.Major >= vNextVersion -> buildVersion
-        | Some source                         -> 
-            // The trick is the "git describe" command contains the --first-parent flag.
-            // Because of that git matched the last release tag before the fork was created and calculated number
-            // of commits since that release. We are perfectly fine, as this number will constantly increase only.
-            // Set version to X.0.0-alpha.NUM, where X - major version, NUM - commits since last release before fork.
-            { source with Major = vNextVersion
-                          Minor = 0
-                          Revision = 0
-                          PreSuffix = "-alpha" }
-            |> calculateVersion
-
-let configureMsBuildParams (parameters: MSBuild.CliArguments) = 
-    let isCiBuild = BuildServer.buildServer <> LocalBuild
-
-    let properties = [ "AssemblyVersion", buildVersion.AssemblyVersion
-                       "FileVersion", buildVersion.FileVersion
-                       "InformationalVersion", buildVersion.InfoVersion
-                       "PackageVersion", buildVersion.NugetVersion
-                       "CommitHash", buildVersion.CommitHash
-                       "EnableSourceLink", isCiBuild.ToString()
-                       "ContinuousIntegrationBuild", isCiBuild.ToString() ]
-
-    { parameters with Verbosity = Some buildVerbosity
-                      Properties = properties }
-
-Target.create "Verify" (fun _ ->
-    try
-        DotNet.build (fun p -> { p with Configuration = DotNet.BuildConfiguration.Custom "Verify"
-                                        MSBuildParams = configureMsBuildParams p.MSBuildParams })
-                     solutionPath
-    with
-    | MSBuildException (msg, errors) -> 
-        let msg = sprintf
-                    "%s\r\nHINT: To simplify the fix process it's recommended to switch to the 'Verify' configuration \
-                    in the IDE. This way you might get Roslyn quick fixes for the violated rules."
-                    msg
-        raise (MSBuildException(msg, errors))
-)
-
-Target.create "Build" (fun _ ->
-    DotNet.build (fun p -> { p with Configuration = buildConfiguration
-                                    MSBuildParams = configureMsBuildParams p.MSBuildParams })
-                 solutionPath
-)
-
-Target.create "CleanTestResultsFolder" (fun _ -> Shell.cleanDir testResultsFolder)
-
-Target.create "Test" (fun _ ->
-    let findProjects pattern = System.IO.Directory.GetDirectories("Src", pattern)
-    let getTestAssemblies framework projDirs =
-        projDirs
-        |> Seq.map (fun proj -> !! (sprintf "bin/%s/%s/*Test.dll" (buildConfiguration.ToString()) framework)
-                                |> GlobbingPattern.setBaseDir proj)
-        |> Seq.collect id
-
-
-    // DotNet.test does not support -- parameters for now.
-    let result = DotNet.exec id
-                    "test"
-                    (sprintf 
-                        "%s --no-build --configuration %s --logger:trx --results-directory \"%s\" -- RunConfiguration.NoAutoReporters=true"
-                        solutionPath
-                        (buildConfiguration.ToString())
-                        testResultsFolder)
-
-    if not result.OK then failwith "test failed"
-
-    findProjects "AutoFixture.NUnit2.*Test"
-    |> getTestAssemblies "*"
-    |> Testing.NUnit.Sequential.run (fun p -> { p with StopOnError = false
-                                                       ShowLabels = false
-                                                       OutputFile  = testResultsFolder  "NUnit2TestResult.xml"
-                                                       ToolPath = buildToolsDir  "NUnit.Runners.2.6.2"  "tools" })
-)
-
-Target.create "CleanNuGetPackages" (fun _ ->
-    Shell.cleanDir nuGetOutputFolder
-)
-
-Target.create "NuGetPack" (fun _ ->
-    DotNet.pack (fun p -> { p with Configuration = buildConfiguration
-                                   OutputPath = Some (Path.getFullName nuGetOutputFolder)
-                                   MSBuildParams = configureMsBuildParams p.MSBuildParams })
-                solutionPath
-
-    let findDependencyNode name (doc:Xml.XmlDocument) =
-            doc.SelectSingleNode(sprintf "//*[local-name()='dependency' and @id='%s']" name)
-
-    // Verify that AutoFixture reference is valid.
-    let dependencyVersion = !! "AutoFixture.AutoNSubstitute*"
-                            |> GlobbingPattern.setBaseDir nuGetOutputFolder
-                            |> Seq.head
-                            |> Zip.unzipFirstMatchingFileInMemory (fun ze -> ze.Name.EndsWith ".nuspec")
-                            |> Xml.createDoc
-                            |> findDependencyNode "AutoFixture"
-                            |> Xml.getAttribute "version"
-
-    if(buildVersion.NugetVersion <> dependencyVersion) 
-        then failwithf "Invalid dependency version in the produced package. Actual: '%s' Expected: '%s'"
-                       dependencyVersion
-                       buildVersion.NugetVersion 
-        else Trace.logfn "Verified the dependency version. Actual: '%s' Expected: '%s'"
-                   dependencyVersion
-                   buildVersion.NugetVersion
-)
-
-let publishPackages packageFeed accessKey =
-    // Protect the secret explicitly, even though FAKE should do it.
-    // See the discussion: https://github.com/fsharp/FAKE/issues/2526#issuecomment-650567241
-    TraceSecrets.register "" accessKey 
-
-    nuGetPackages
-    |> Seq.iter (fun pkg -> DotNet.nugetPush (fun p -> { p with PushParams = { p.PushParams with ApiKey = Some accessKey
-                                                                                                 Source = Some packageFeed }})
-                                             pkg
-    )
-
-Target.create "PublishNuGet" (fun _ ->
-    let feed = "https://www.nuget.org/api/v2/package"
-    let key = Environment.environVarOrFail "NUGET_API_KEY"
-
-    publishPackages feed key
-)
-
-Target.create "PublishMyGet" (fun _ ->
-    let packageFeed = "https://www.myget.org/F/autofixture/api/v2/package"
-    let key = Environment.environVarOrFail "MYGET_API_KEY"
-
-    publishPackages packageFeed key
-)
-
-Target.create "CompleteBuild"   ignore
-
-"Verify" ==> "Build"
-
-
-"CleanTestResultsFolder" ==> "Test"
-"Build"                  ==> "Test"
-
-"CleanNuGetPackages" ==> "NuGetPack"
-"Test"               ==> "NuGetPack"
-
-"NuGetPack" ==> "CompleteBuild"
-
-"NuGetPack" ==> "PublishNuGet"
-
-"NuGetPack" ==> "PublishMyGet"
-
-// ==============================================
-// ================== AppVeyor ==================
-// ==============================================
-
-// Add a helper to identify whether current trigger is PR.
-type AppVeyor.Environment with
-    static member IsPullRequest = String.isNotNullOrEmpty AppVeyor.Environment.PullRequestNumber
-
-type AppVeyorTrigger = SemVerTag | CustomTag | PR | VNextBranch | Unknown
-let anAppVeyorTrigger =
-    let tag = if AppVeyor.Environment.RepoTag then Some AppVeyor.Environment.RepoTagName else None
-    let isPR = AppVeyor.Environment.IsPullRequest
-    let branch = if String.isNotNullOrEmpty AppVeyor.Environment.RepoBranch then Some AppVeyor.Environment.RepoBranch else None
-
-    match tag, isPR, branch with
-    | Some t, _, _ when "v\d+.*" >** t -> SemVerTag
-    | Some _, _, _                     -> CustomTag
-    | _, true, _                       -> PR
-    // Branch name should be checked after the PR flag, because for PR it's set to the upstream branch name.
-    | _, _, Some br when "v\d+" >** br -> VNextBranch
-    | _                                -> Unknown
-
-Target.create "AppVeyor_SetVNextVersion" (fun _ ->
-    // vNext branch has the following name: "vX", where X is the next version.
-    AppVeyor.Environment.RepoBranch.Substring(1) 
-    |> int
-    |> setVNextBranchVersion
-)
-
-Target.create "AppVeyor_UploadTestReports" (fun _ ->
-    let shuffle xs = xs |> Seq.sortBy (fun _ -> Guid())
-
-    !!"*.trx"
-    |> GlobbingPattern.setBaseDir testResultsFolder
-    |> Seq.map (fun file -> (file, ImportData.Mstest))
-    |> Seq.append [(testResultsFolder  "NUnit2TestResult.xml", ImportData.Nunit NunitDataVersion.Nunit)]
-    |> shuffle
-    |> Seq.map (fun (file, format) -> async { Trace.publish format file })
-    |> Async.Parallel
-    |> Async.RunSynchronously
-    |> ignore
-)
-
-Target.createFinal "AppVeyor_UpdateVersion" (fun _ ->
-    // Artifacts might be deployable, so we update build version to find them later by file version.
-    let versionSuffix = if AppVeyor.Environment.IsPullRequest then
-                            let appVeyorVersion = AppVeyor.Environment.BuildVersion;
-                            appVeyorVersion.Substring(appVeyorVersion.IndexOf('-'))
-                        else
-                            ""
-    Trace.setBuildNumber (buildVersion.FileVersion + versionSuffix)
-)
-
-Target.create "AppVeyor" ignore
-
-"AppVeyor_SetVNextVersion" =?> ("PatchAssemblyVersions", anAppVeyorTrigger = VNextBranch)
-
-"Test" ==> "AppVeyor_UploadTestReports"
-
-// Add logic to resolve action based on current trigger info.
-(==>) <| match anAppVeyorTrigger with
-         | SemVerTag                -> "PublishNuGet"
-         | VNextBranch              -> "PublishMyGet"
-         | PR | CustomTag | Unknown -> "CompleteBuild"
-      <| "AppVeyor"
-
-"AppVeyor_UploadTestReports" ==> "AppVeyor"
-
-// Print state info at the very beginning.
-if BuildServer.buildServer = AppVeyor 
-   then Trace.logfn "[AppVeyor state] Is tag: %b, tag name: '%s', is PR: %b, branch name: '%s', trigger: %A, build version: '%s'"
-              AppVeyor.Environment.RepoTag 
-              AppVeyor.Environment.RepoTagName 
-              AppVeyor.Environment.IsPullRequest
-              AppVeyor.Environment.RepoBranch
-              anAppVeyorTrigger
-              AppVeyor.Environment.BuildVersion
-        Target.activateFinal "AppVeyor_UpdateVersion"
-
-BuildServer.install [ AppVeyor.Installer ]
-
-// ========= ENTRY POINT =========
-Target.runOrDefault "CompleteBuild"
diff --git a/Common.Test.props b/Common.Test.props
new file mode 100644
index 00000000..f7a68151
--- /dev/null
+++ b/Common.Test.props
@@ -0,0 +1,36 @@
+
+  
+    False
+    false
+
+    true
+    true
+
+    false
+
+    
+    false
+    true
+    latest-Default
+
+    false
+    
+    false
+
+    
+    true
+  
+
+  
+    
+
+    
+      all
+      runtime; build; native; contentfiles; analyzers; buildtransitive
+    
+  
+
+  
+    
+  
+
diff --git a/Src/Common.props b/Common.props
similarity index 66%
rename from Src/Common.props
rename to Common.props
index d4adb0aa..e148f833 100644
--- a/Src/Common.props
+++ b/Common.props
@@ -2,32 +2,47 @@
   
     AutoFixture
     AutoFixture
-    Copyright © AutoFixture 2011
+    Copyright © AutoFixture
     false
     false
+    true
 
     en-US
-    $(MSBuildThisFileDirectory)CodeAnalysis.Empty.ruleset
 
     True
     $(MSBuildThisFileDirectory)AutoFixture.snk
 
     Debug;Release;Verify
-    latest
+    10
 
     true
 
+    
+    $(NoWarn);NETSDK1138;NU1902;NU1903
+
+    
+    true
+    latest-Recommended
+
     
-    Mark Seemann,AutoFixture
-    https://github.com/AutoFixture/AutoFixture
+    AutoFixture Contributors
+    https://github.com/AutoFixture/AutoFixture.xUnit
     true
     MIT
     https://raw.githubusercontent.com/AutoFixture/AutoFixture/79c882c3f4af3cf52ad43e5c95851f25d217ac17/AutoFixtureLogo200x200.png
     icon.png
+    README.md
     $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
+    true
   
+
+  
+    
+  
+
   
-    
+    
+    
   
 
   
@@ -38,7 +53,7 @@
   
 
   
-    
+    
       
         $(DefineConstants);SYSTEM_GLOBALIZATION_CULTUREINFO_CULTURESETTERS
       
@@ -51,31 +66,26 @@
     
   
   
-    $(DefineConstants);SYSTEM_NET_MAIL
+    $(DefineConstants);SYSTEM_NET_MAIL
   
 
   
     
       
-        true
-        
-        full
-        portable
+        portable
       
     
     
       
         $(DefineConstants);CODE_ANALYSIS
-        true
         true
-        $(MSBuildThisFileDirectory)\CodeAnalysis.AutoFixture.ruleset
+        true
       
     
   
 
   
-    
-    
+    
     
   
 
diff --git a/GitVersion.yml b/GitVersion.yml
new file mode 100644
index 00000000..fd84f7c8
--- /dev/null
+++ b/GitVersion.yml
@@ -0,0 +1,14 @@
+mode: ContinuousDelivery
+assembly-versioning-scheme: MajorMinorPatch
+tag-prefix: '[vV]'
+branches:
+  master:
+    tag: ''
+    increment: Minor
+  release:
+    source-branches: ['master']
+    prevent-increment-of-merged-branch-version: true
+    tag: 'preview'
+ignore:
+  sha: []
+merge-message-formats: {}
diff --git a/LICENCE.txt b/LICENCE.txt
index 85921e70..9d04c63f 100644
--- a/LICENCE.txt
+++ b/LICENCE.txt
@@ -1,6 +1,6 @@
 The MIT License (MIT)
 
-Copyright (c) 2013 Mark Seemann
+Copyright (c) AutoFixture
 
 Permission is hereby granted, free of charge, to any person obtaining a copy of
 this software and associated documentation files (the "Software"), to deal in
diff --git a/README.md b/README.md
index a0899293..85e8f75d 100644
--- a/README.md
+++ b/README.md
@@ -1,101 +1,146 @@
-# AutoFixture
+# AutoFixture.xUnit
 
-[![License](https://img.shields.io/badge/license-MIT-green)](https://raw.githubusercontent.com/AutoFixture/AutoFixture/master/LICENCE.txt)
-[![release](https://github.com/AutoFixture/AutoFixture/actions/workflows/release.yml/badge.svg)](https://github.com/AutoFixture/AutoFixture/actions/workflows/release.yml)
-[![NuGet version](https://img.shields.io/nuget/v/AutoFixture?logo=nuget)](https://www.nuget.org/packages/AutoFixture)
-[![NuGet preview version](https://img.shields.io/nuget/vpre/AutoFixture?logo=nuget)](https://www.nuget.org/packages/AutoFixture)
-[![NuGet downloads](https://img.shields.io/nuget/dt/AutoFixture)](https://www.nuget.org/packages/AutoFixture)
-
-    AutoFixture
-
+[![License](https://img.shields.io/badge/license-MIT-green)](https://raw.githubusercontent.com/AutoFixture/AutoFixture.xUnit/master/LICENCE.txt)
+[![NuGet version](https://img.shields.io/nuget/v/AutoFixture.xUnit?logo=nuget)](https://www.nuget.org/packages/AutoFixture.xUnit)
+[![NuGet preview version](https://img.shields.io/nuget/vpre/AutoFixture.xUnit?logo=nuget)](https://www.nuget.org/packages/AutoFixture.xUnit)
+[![NuGet downloads](https://img.shields.io/nuget/dt/AutoFixture.xUnit)](https://www.nuget.org/packages/AutoFixture.xUnit)
 
-Write maintainable unit tests, faster.
+[AutoFixture.xUnit](https://github.com/AutoFixture/AutoFixture.xUnit) is a .NET library that integrates [AutoFixture](https://github.com/AutoFixture/AutoFixture) with xUnit 1.x, allowing you to effortlessly generate test data for your unit tests.
+By automatically populating your test parameters, it helps you write cleaner, more maintainable tests without having to manually construct test objects.
 
-AutoFixture makes it easier for developers to do Test-Driven Development by automating non-relevant Test Fixture Setup, allowing the Test Developer to focus on the essentials of each test case.
-
-Check the [testimonials](https://github.com/AutoFixture/AutoFixture/wiki/Who-uses-AutoFixture) to see what other people have to say about AutoFixture.
+> [!WARNING]
+> While this package is still being developed, the xUnit 1 package is deprecated.
+> This package is intended only for legacy projects that are still using xUnit 1.x.
## Table of Contents -- [Overview](#overview) -- [Downloads](#downloads) -- [Documentation](#documentation) -- [Feedback & Questions](#feedback--questions) +- [Installation](#installation) +- [Getting Started](#getting-started) +- [Integrations](#integrations) +- [Contributing](#contributing) - [License](#license) -## Overview +## Installation + +AutoFixture packages are distributed via NuGet.
+To install the packages you can use the integrated package manager of your IDE, the .NET CLI, or reference the package directly in your project file. + +```cmd +dotnet add package AutoFixture.xUnit --version x.x.x +``` + +```xml + +``` -(Jump straight to the [CheatSheet](https://github.com/AutoFixture/AutoFixture/wiki/Cheat-Sheet) if you just want to see some code samples right away.) +## Getting Started -AutoFixture is designed to make Test-Driven Development more productive and unit tests more refactoring-safe. It does so by removing the need for hand-coding anonymous variables as part of a test's Fixture Setup phase. Among other features, it offers a generic implementation of the [Test Data Builder](http://www.natpryce.com/articles/000714.html) pattern. +### Basic Usage -When writing unit tests, you typically need to create some objects that represent the initial state of the test. Often, an API will force you to specify much more data than you really care about, so you frequently end up creating objects that has no influence on the test, simply to make the code compile. +`AutoFixture.xUnit` provides an `[AutoData]` attribute that automatically populates test method parameters with generated data. -AutoFixture can help by creating such [Anonymous Variables](https://docs.microsoft.com/en-us/archive/blogs/ploeh/anonymous-variables) for you. Here's a simple example: +For example, imagine you have a simple calculator class: ```c# -[Fact] -public void IntroductoryTest() +public class Calculator { - // Arrange - Fixture fixture = new Fixture(); - - int expectedNumber = fixture.Create(); - MyClass sut = fixture.Create(); - // Act - int result = sut.Echo(expectedNumber); - // Assert - Assert.Equal(expectedNumber, result); + public int Add(int a, int b) => a + b; } ``` -This example illustrates the basic principle of AutoFixture: It can create values of virtually any type without the need for you to explicitly define which values should be used. The number *expectedNumber* is created by a call to `Create` - this will create a 'nice', regular integer value, saving you the effort of explicitly coming up with one. - -The example also illustrates how AutoFixture can be used as a [SUT Factory](http://blog.ploeh.dk/2009/02/13/SUTFactory.aspx) that creates the actual System Under Test (the MyClass instance). - -Given the right combination of unit testing framework and extensions for AutoFixture, we can further reduce the above test to be even more declarative: - -### [xUnit](http://blog.ploeh.dk/2010/10/08/AutoDataTheoriesWithAutoFixture.aspx) +You can write a test using AutoFixture to provide the input values: ```c# -[Theory, AutoData] -public void IntroductoryTest(int expectedNumber, MyClass sut) +using Xunit; +using AutoFixture.xUnit; + +public class CalculatorTests { - int result = sut.Echo(expectedNumber); - Assert.Equal(expectedNumber, result); + [Theory, AutoData] + public void Add_SimpleValues_ReturnsCorrectResult( + Calculator calculator, int a, int b) + { + // Act + int result = calculator.Add(a, b); + + // Assert + Assert.AreEqual(a + b, result); + } } ``` -### [NUnit](http://gertjvr.wordpress.com/2013/09/25/howto-autofixture-nunit2) +### Inline Auto-Data + +You can also combine auto-generated data with inline arguments using the `[InlineAutoData]` attribute. +This allows you to specify some parameters while still letting AutoFixture generate the rest. ```c# -[Test, AutoData] -public void IntroductoryTest(int expectedNumber, MyClass sut) +using Xunit; +using AutoFixture.xUnit; +using AutoFixture; + +public class CalculatorTests { - int result = sut.Echo(expectedNumber); - Assert.Equal(expectedNumber, result); + [Theory, InlineAutoData(5, 8)] + public void Add_SpecificValues_ReturnsCorrectResult( + int a, int b, Calculator calculator) + { + // Act + int result = calculator.Add(a, b); + + // Assert + Assert.AreEqual(13, result); + } } ``` -Notice how we can reduce unit tests to state only the relevant parts of the test. The rest (variables, Fixture object) is relegated to attributes and parameter values that are supplied automatically by AutoFixture. The test is now only two lines of code. +### Freezing Dependencies -Using AutoFixture is as easy as referencing the library and creating a new instance of the Fixture class! +AutoFixture's `[Frozen]` attribute can be used to ensure that the same instance of a dependency is injected into multiple parameters. -## Downloads +For example, if you have a consumer class that depends on a shared dependency: -AutoFixture packages are distributed via NuGet.
-To install the packages you can use the integrated package manager of your IDE, the .NET CLI, or reference the package directly in your project file. +```c# +public class Dependency { } -```cmd -dotnet add package AutoFixture --version 4.18.0 +public class Consumer +{ + public Dependency Dependency { get; } + + public Consumer(Dependency dependency) + { + Dependency = dependency; + } +} ``` -```xml - +You can freeze the Dependency so that all requests for it within the test will return the same instance: + +```c# +using Xunit; +using AutoFixture.xUnit; +using AutoFixture; + +public class ConsumerTests +{ + [Theory, AutoData] + public void Consumer_UsesSameDependency( + [Frozen] Dependency dependency, Consumer consumer) + { + // Assert + Assert.AreSame(dependency, consumer.Dependency); + } +} ``` +## Integrations + AutoFixture offers a variety of utility packages and integrations with most of the major mocking libraries and testing frameworks. +> [!NOTE] +> Since AutoFixture tries maintain compatibility with a large number of package versions, the packages bundled with AutoFixture might not contain the latest features of your (e.g. mocking) library.
+> Make sure to install the latest version of the integrated library package, alongside the AutoFixture packages. + ### Core packages The core packages offer the full set of AutoFixture's features without requring any testing framework or third party integration. @@ -118,10 +163,6 @@ These integrations enable such features as configuring mocks, auto-injecting moc | FakeItEasy | [AutoFixture.AutoFakeItEasy](http://www.nuget.org/packages/AutoFixture.AutoFakeItEasy) | [![NuGet](https://img.shields.io/nuget/v/AutoFixture.AutoFakeItEasy)](https://www.nuget.org/packages/AutoFixture.AutoFakeItEasy) | [![NuGet](https://img.shields.io/nuget/vpre/AutoFixture.AutoFakeItEasy)](https://www.nuget.org/packages/AutoFixture.AutoFakeItEasy) | ![NuGet](https://img.shields.io/nuget/dt/autofixture.AutoFakeItEasy) | | Rhino Mocks | [AutoFixture.AutoRhinoMocks](http://www.nuget.org/packages/AutoFixture.AutoRhinoMocks) | [![NuGet](https://img.shields.io/nuget/v/AutoFixture.AutoRhinoMocks)](https://www.nuget.org/packages/AutoFixture.AutoRhinoMocks) | [![NuGet](https://img.shields.io/nuget/vpre/AutoFixture.AutoRhinoMocks)](https://www.nuget.org/packages/AutoFixture.AutoRhinoMocks) | ![NuGet](https://img.shields.io/nuget/dt/autofixture.AutoRhinoMocks) | -> **NOTE:** -> Since AutoFixture tries maintain compatibility with a large number of package versions, the packages bundled with AutoFixture might not contain the latest features of your mocking library.
-> Make sure to install the latest version of the mocking library package, alongside the AutoFixture package. - ### Testing frameworks AutoFixture offers integrations with most major .NET testing frameworks.
@@ -139,41 +180,14 @@ These integrations enable auto-generation of test cases, combining auto-generate You can check the compatibility with your target framework version on the [wiki](https://github.com/AutoFixture/AutoFixture/wiki#net-platforms-compatibility-table) or on the [NuGet](https://www.nuget.org/profiles/AutoFixture) website. -### vNext feed - -The artifacts of the next major version are published to [nuget.org](https://www.nuget.org), and are marked with the `preview` suffix (e.g. `5.0.0-preview00007`).
-You can use these packages to early access and test the next major version of the AutoFixture.
-Make sure to enable the preview packages in your IDE in order to see the latest version. - -> __NOTE:__ This preview versions exists for the _preview purpose_ only, so use them with caution: -> ->* New versions of packages might contain breaking changes and API could change drastically from package to package. By other words, we don't follow the SemVer policy for the packages in this feed; ->* Preview packages might be unlisted over time, in order to not clutter the version suggestion dialog in IDEs, but will generally remain available - -## Documentation - -* [CheatSheet](https://github.com/AutoFixture/AutoFixture/wiki/Cheat-Sheet) -* [FAQ](https://github.com/AutoFixture/AutoFixture/wiki/FAQ) - -### Additional resources - -* [Pluralsight course](https://www.pluralsight.com/courses/unit-testing-autofixture-dot-net) -* [ploeh blog](http://blog.ploeh.dk/tags/#AutoFixture-ref) -* [Nikos Baxevanis' blog](http://blog.nikosbaxevanis.com) -* [Enrico Campidoglio's blog](http://megakemp.com/tag/autofixture) -* [Gert Jansen van Rensburg's blog](http://gertjvr.wordpress.com/category/autofixture) -* [Questions on Stack Overflow](http://stackoverflow.com/questions/tagged/autofixture) - -## Feedback & Questions - -If you have questions, feel free to ask. The best places to ask are: +## Contributing -* [Stack Overflow - use the *autofixture* tag](http://stackoverflow.com/questions/tagged/autofixture) -* [GitHub Q&A Discussions](https://github.com/AutoFixture/AutoFixture/discussions/categories/q-a) +Contributions to `AutoFixture.xUnit` are welcome! +If you would like to contribute, please review our [contributing guidelines](https://github.com/AutoFixture/AutoFixture.xUnit/blob/maste/CONTRIBUTING.md) and open an issue or pull request. ## License -AutoFixture is Open Source software and is released under the [MIT license](https://raw.githubusercontent.com/AutoFixture/AutoFixture/master/LICENCE.txt).
+AutoFixture is Open Source software and is released under the [MIT license](https://raw.githubusercontent.com/AutoFixture/AutoFixture.xUnit/master/LICENCE.txt).
The licenses allows the use of AutoFixture libraries in free and commercial applications and libraries without restrictions. ### .NET Foundation diff --git a/References/NUnit.2.6.2/nunit.core.dll b/References/NUnit.2.6.2/nunit.core.dll deleted file mode 100644 index 8e6d9566..00000000 Binary files a/References/NUnit.2.6.2/nunit.core.dll and /dev/null differ diff --git a/References/NUnit.2.6.2/nunit.core.interfaces.dll b/References/NUnit.2.6.2/nunit.core.interfaces.dll deleted file mode 100644 index a966ad52..00000000 Binary files a/References/NUnit.2.6.2/nunit.core.interfaces.dll and /dev/null differ diff --git a/Src/All.sln b/Src/All.sln deleted file mode 100644 index 7bfa1809..00000000 --- a/Src/All.sln +++ /dev/null @@ -1,351 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.32112.339 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFixture", "AutoFixture\AutoFixture.csproj", "{400AC174-9A4A-4C7D-815B-F2A21130A0D1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFixtureUnitTest", "AutoFixtureUnitTest\AutoFixtureUnitTest.csproj", "{01C86B79-C79F-4EC4-B32E-DA5467DBBD31}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFixtureDocumentationTest", "AutoFixtureDocumentationTest\AutoFixtureDocumentationTest.csproj", "{53F3A7F8-B4CA-4500-B493-FBE59D2619A7}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestTypeFoundation", "TestTypeFoundation\TestTypeFoundation.csproj", "{7FF65787-F462-4204-BB9D-60B0D1BB6CC1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFakeItEasy", "AutoFakeItEasy\AutoFakeItEasy.csproj", "{B6B79E32-EE90-4AE1-BD32-F50B5A0C2B40}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFakeItEasy2", "AutoFakeItEasy2\AutoFakeItEasy2.csproj", "{68A3F347-7D9D-4020-A3D5-F127234DD429}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFakeItEasyUnitTest", "AutoFakeItEasyUnitTest\AutoFakeItEasyUnitTest.csproj", "{E5CAB3E1-10DD-4081-A5FF-ED8A11F3C2CB}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFixture.NUnit2", "AutoFixture.NUnit2\AutoFixture.NUnit2.csproj", "{786AFDB3-B705-49DD-A565-34F44A4A2DAD}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFixture.NUnit2.UnitTest", "AutoFixture.NUnit2.UnitTest\AutoFixture.NUnit2.UnitTest.csproj", "{5CACC229-A5EF-4683-A846-D59230284D66}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFixture.NUnit3", "AutoFixture.NUnit3\AutoFixture.NUnit3.csproj", "{6539DC8B-7829-478E-A601-7625B0C814E1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFixture.NUnit3.UnitTest", "AutoFixture.NUnit3.UnitTest\AutoFixture.NUnit3.UnitTest.csproj", "{1E512431-ADC0-4218-873E-E4DF40C97268}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFixture.xUnit", "AutoFixture.xUnit\AutoFixture.xUnit.csproj", "{266B9F0E-28E5-47CA-9816-ACB6737E7E4D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFixture.xUnit.UnitTest", "AutoFixture.xUnit.UnitTest\AutoFixture.xUnit.UnitTest.csproj", "{14FADDF9-F0D2-4BD4-B285-FDDAB5762CC4}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFixture.xUnit2", "AutoFixture.xUnit2\AutoFixture.xUnit2.csproj", "{240605C0-84DC-4B01-A79E-1123D20BB25D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFixture.xUnit2.UnitTest", "AutoFixture.xUnit2.UnitTest\AutoFixture.xUnit2.UnitTest.csproj", "{67D81234-8589-4E11-85BC-C0C49399A289}" -EndProject -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AutoFoq", "AutoFoq\AutoFoq.fsproj", "{E2D94FAA-A782-4D17-89A0-0F4B5D3BB021}" -EndProject -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AutoFoqUnitTest", "AutoFoqUnitTest\AutoFoqUnitTest.fsproj", "{11544D61-62C6-4B24-BBD7-8685D7786AE9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoMoq", "AutoMoq\AutoMoq.csproj", "{5DCEC2BD-40A3-458A-BEBC-C2FC0D4D451B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoMoqUnitTest", "AutoMoqUnitTest\AutoMoqUnitTest.csproj", "{C50B2B1F-AF13-4DAB-8F56-788155017318}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoNSubstitute", "AutoNSubstitute\AutoNSubstitute.csproj", "{189C9474-B406-4356-A367-FBC882E9BA4B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoNSubstituteUnitTest", "AutoNSubstituteUnitTest\AutoNSubstituteUnitTest.csproj", "{B953A044-440C-43C0-B2CC-2585504221A9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoRhinoMock", "AutoRhinoMock\AutoRhinoMock.csproj", "{35500763-A1C6-468A-A0F0-7AE737D5CEF0}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoRhinoMockUnitTest", "AutoRhinoMockUnitTest\AutoRhinoMockUnitTest.csproj", "{481F0C9E-DA19-4DBD-9D25-EBA1030AAA03}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Idioms", "Idioms\Idioms.csproj", "{35DE0E35-4E3A-46D7-B175-80CA10276BE7}" -EndProject -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Idioms.FsCheck", "Idioms.FsCheck\Idioms.FsCheck.fsproj", "{DCAAF1DB-BEA0-4A6F-8F67-A35A9891A7A9}" -EndProject -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Idioms.FsCheckUnitTest", "Idioms.FsCheckUnitTest\Idioms.FsCheckUnitTest.fsproj", "{B3CE0FC0-BB92-47F3-B43E-92B87F7956B8}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IdiomsUnitTest", "IdiomsUnitTest\IdiomsUnitTest.csproj", "{730E1D38-BA80-48C7-B05C-E2BD29F38851}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F0A01F00-72C7-4CE4-8BA4-9EB178B72329}" - ProjectSection(SolutionItems) = preProject - ..\.editorconfig = ..\.editorconfig - CodeAnalysis.AutoFixture.ruleset = CodeAnalysis.AutoFixture.ruleset - CodeAnalysis.Empty.ruleset = CodeAnalysis.Empty.ruleset - CodeAnalysis.Test.ruleset = CodeAnalysis.Test.ruleset - Common.props = Common.props - Common.Test.props = Common.Test.props - Common.Test.xUnit.props = Common.Test.xUnit.props - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFakeItEasy.FakeItEasy2UnitTest", "AutoFakeItEasy.FakeItEasy2UnitTest\AutoFakeItEasy.FakeItEasy2UnitTest.csproj", "{7F957CC0-79C3-48A1-9A3E-47BED7539248}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFakeItEasy.FakeItEasy3UnitTest", "AutoFakeItEasy.FakeItEasy3UnitTest\AutoFakeItEasy.FakeItEasy3UnitTest.csproj", "{A7AE8091-3AC8-42A3-ACEB-32F49A8B05D1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFakeItEasy.FakeItEasy4UnitTest", "AutoFakeItEasy.FakeItEasy4UnitTest\AutoFakeItEasy.FakeItEasy4UnitTest.csproj", "{B8B07C7C-E7C8-4272-AAA4-E4ED4CCD249C}" -EndProject -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Idioms.FsCheck.FsCheck1UnitTest", "Idioms.FsCheck.FsCheck1UnitTest\Idioms.FsCheck.FsCheck1UnitTest.fsproj", "{42270230-D6FC-4FE8-ACE9-334006BF6692}" -EndProject -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Idioms.FsCheck.FsCheck2UnitTest", "Idioms.FsCheck.FsCheck2UnitTest\Idioms.FsCheck.FsCheck2UnitTest.fsproj", "{3C9C7C3E-452D-4ECE-9124-854406758A6D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoNSubstitute.NSubstitute3UnitTest", "AutoNSubstitute.NSubstitute3UnitTest\AutoNSubstitute.NSubstitute3UnitTest.csproj", "{C25EA45A-358C-43F7-9A61-8F68632730F3}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFixture.SeedExtensions", "AutoFixture.SeedExtensions\AutoFixture.SeedExtensions.csproj", "{F1FE2173-62BD-4D3A-92C1-A3ECB2117252}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFixture.SeedExtensions.UnitTest", "AutoFixture.SeedExtensions.UnitTest\AutoFixture.SeedExtensions.UnitTest.csproj", "{0F3C467A-ED89-4348-9210-FC2D358E20C5}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFakeItEasy.FakeItEasy5UnitTest", "AutoFakeItEasy.FakeItEasy5UnitTest\AutoFakeItEasy.FakeItEasy5UnitTest.csproj", "{FA9FA942-3E9F-49B5-A622-396DB0FC791F}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoNSubstitute.NSubstitute4UnitTest", "AutoNSubstitute.NSubstitute4UnitTest\AutoNSubstitute.NSubstitute4UnitTest.csproj", "{4BDBE8A1-CF75-4049-9B3D-B194B1F45369}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFakeItEasy.FakeItEasy6UnitTest", "AutoFakeItEasy.FakeItEasy6UnitTest\AutoFakeItEasy.FakeItEasy6UnitTest.csproj", "{311A3010-B938-4832-9D3A-21A1A56FE5EA}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoFakeItEasy.FakeItEasy7UnitTest", "AutoFakeItEasy.FakeItEasy7UnitTest\AutoFakeItEasy.FakeItEasy7UnitTest.csproj", "{1B42519B-24C2-4141-83A3-AB68AB09EE28}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoNSubstitute.NSubstitute5UnitTest", "AutoNSubstitute.NSubstitute5UnitTest\AutoNSubstitute.NSubstitute5UnitTest.csproj", "{7F18BAB2-6296-4248-9833-C65A1ED00C8D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - Verify|Any CPU = Verify|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {400AC174-9A4A-4C7D-815B-F2A21130A0D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {400AC174-9A4A-4C7D-815B-F2A21130A0D1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {400AC174-9A4A-4C7D-815B-F2A21130A0D1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {400AC174-9A4A-4C7D-815B-F2A21130A0D1}.Release|Any CPU.Build.0 = Release|Any CPU - {400AC174-9A4A-4C7D-815B-F2A21130A0D1}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {400AC174-9A4A-4C7D-815B-F2A21130A0D1}.Verify|Any CPU.Build.0 = Verify|Any CPU - {01C86B79-C79F-4EC4-B32E-DA5467DBBD31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {01C86B79-C79F-4EC4-B32E-DA5467DBBD31}.Debug|Any CPU.Build.0 = Debug|Any CPU - {01C86B79-C79F-4EC4-B32E-DA5467DBBD31}.Release|Any CPU.ActiveCfg = Release|Any CPU - {01C86B79-C79F-4EC4-B32E-DA5467DBBD31}.Release|Any CPU.Build.0 = Release|Any CPU - {01C86B79-C79F-4EC4-B32E-DA5467DBBD31}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {01C86B79-C79F-4EC4-B32E-DA5467DBBD31}.Verify|Any CPU.Build.0 = Verify|Any CPU - {53F3A7F8-B4CA-4500-B493-FBE59D2619A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {53F3A7F8-B4CA-4500-B493-FBE59D2619A7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {53F3A7F8-B4CA-4500-B493-FBE59D2619A7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {53F3A7F8-B4CA-4500-B493-FBE59D2619A7}.Release|Any CPU.Build.0 = Release|Any CPU - {53F3A7F8-B4CA-4500-B493-FBE59D2619A7}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {53F3A7F8-B4CA-4500-B493-FBE59D2619A7}.Verify|Any CPU.Build.0 = Verify|Any CPU - {7FF65787-F462-4204-BB9D-60B0D1BB6CC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7FF65787-F462-4204-BB9D-60B0D1BB6CC1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7FF65787-F462-4204-BB9D-60B0D1BB6CC1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7FF65787-F462-4204-BB9D-60B0D1BB6CC1}.Release|Any CPU.Build.0 = Release|Any CPU - {7FF65787-F462-4204-BB9D-60B0D1BB6CC1}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {7FF65787-F462-4204-BB9D-60B0D1BB6CC1}.Verify|Any CPU.Build.0 = Verify|Any CPU - {B6B79E32-EE90-4AE1-BD32-F50B5A0C2B40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B6B79E32-EE90-4AE1-BD32-F50B5A0C2B40}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B6B79E32-EE90-4AE1-BD32-F50B5A0C2B40}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B6B79E32-EE90-4AE1-BD32-F50B5A0C2B40}.Release|Any CPU.Build.0 = Release|Any CPU - {B6B79E32-EE90-4AE1-BD32-F50B5A0C2B40}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {B6B79E32-EE90-4AE1-BD32-F50B5A0C2B40}.Verify|Any CPU.Build.0 = Verify|Any CPU - {68A3F347-7D9D-4020-A3D5-F127234DD429}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {68A3F347-7D9D-4020-A3D5-F127234DD429}.Debug|Any CPU.Build.0 = Debug|Any CPU - {68A3F347-7D9D-4020-A3D5-F127234DD429}.Release|Any CPU.ActiveCfg = Release|Any CPU - {68A3F347-7D9D-4020-A3D5-F127234DD429}.Release|Any CPU.Build.0 = Release|Any CPU - {68A3F347-7D9D-4020-A3D5-F127234DD429}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {68A3F347-7D9D-4020-A3D5-F127234DD429}.Verify|Any CPU.Build.0 = Verify|Any CPU - {E5CAB3E1-10DD-4081-A5FF-ED8A11F3C2CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E5CAB3E1-10DD-4081-A5FF-ED8A11F3C2CB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E5CAB3E1-10DD-4081-A5FF-ED8A11F3C2CB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E5CAB3E1-10DD-4081-A5FF-ED8A11F3C2CB}.Release|Any CPU.Build.0 = Release|Any CPU - {E5CAB3E1-10DD-4081-A5FF-ED8A11F3C2CB}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {E5CAB3E1-10DD-4081-A5FF-ED8A11F3C2CB}.Verify|Any CPU.Build.0 = Verify|Any CPU - {786AFDB3-B705-49DD-A565-34F44A4A2DAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {786AFDB3-B705-49DD-A565-34F44A4A2DAD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {786AFDB3-B705-49DD-A565-34F44A4A2DAD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {786AFDB3-B705-49DD-A565-34F44A4A2DAD}.Release|Any CPU.Build.0 = Release|Any CPU - {786AFDB3-B705-49DD-A565-34F44A4A2DAD}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {786AFDB3-B705-49DD-A565-34F44A4A2DAD}.Verify|Any CPU.Build.0 = Verify|Any CPU - {5CACC229-A5EF-4683-A846-D59230284D66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5CACC229-A5EF-4683-A846-D59230284D66}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5CACC229-A5EF-4683-A846-D59230284D66}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5CACC229-A5EF-4683-A846-D59230284D66}.Release|Any CPU.Build.0 = Release|Any CPU - {5CACC229-A5EF-4683-A846-D59230284D66}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {5CACC229-A5EF-4683-A846-D59230284D66}.Verify|Any CPU.Build.0 = Verify|Any CPU - {6539DC8B-7829-478E-A601-7625B0C814E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6539DC8B-7829-478E-A601-7625B0C814E1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6539DC8B-7829-478E-A601-7625B0C814E1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6539DC8B-7829-478E-A601-7625B0C814E1}.Release|Any CPU.Build.0 = Release|Any CPU - {6539DC8B-7829-478E-A601-7625B0C814E1}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {6539DC8B-7829-478E-A601-7625B0C814E1}.Verify|Any CPU.Build.0 = Verify|Any CPU - {1E512431-ADC0-4218-873E-E4DF40C97268}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1E512431-ADC0-4218-873E-E4DF40C97268}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1E512431-ADC0-4218-873E-E4DF40C97268}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1E512431-ADC0-4218-873E-E4DF40C97268}.Release|Any CPU.Build.0 = Release|Any CPU - {1E512431-ADC0-4218-873E-E4DF40C97268}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {1E512431-ADC0-4218-873E-E4DF40C97268}.Verify|Any CPU.Build.0 = Verify|Any CPU - {266B9F0E-28E5-47CA-9816-ACB6737E7E4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {266B9F0E-28E5-47CA-9816-ACB6737E7E4D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {266B9F0E-28E5-47CA-9816-ACB6737E7E4D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {266B9F0E-28E5-47CA-9816-ACB6737E7E4D}.Release|Any CPU.Build.0 = Release|Any CPU - {266B9F0E-28E5-47CA-9816-ACB6737E7E4D}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {266B9F0E-28E5-47CA-9816-ACB6737E7E4D}.Verify|Any CPU.Build.0 = Verify|Any CPU - {14FADDF9-F0D2-4BD4-B285-FDDAB5762CC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {14FADDF9-F0D2-4BD4-B285-FDDAB5762CC4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {14FADDF9-F0D2-4BD4-B285-FDDAB5762CC4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {14FADDF9-F0D2-4BD4-B285-FDDAB5762CC4}.Release|Any CPU.Build.0 = Release|Any CPU - {14FADDF9-F0D2-4BD4-B285-FDDAB5762CC4}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {14FADDF9-F0D2-4BD4-B285-FDDAB5762CC4}.Verify|Any CPU.Build.0 = Verify|Any CPU - {240605C0-84DC-4B01-A79E-1123D20BB25D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {240605C0-84DC-4B01-A79E-1123D20BB25D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {240605C0-84DC-4B01-A79E-1123D20BB25D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {240605C0-84DC-4B01-A79E-1123D20BB25D}.Release|Any CPU.Build.0 = Release|Any CPU - {240605C0-84DC-4B01-A79E-1123D20BB25D}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {240605C0-84DC-4B01-A79E-1123D20BB25D}.Verify|Any CPU.Build.0 = Verify|Any CPU - {67D81234-8589-4E11-85BC-C0C49399A289}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {67D81234-8589-4E11-85BC-C0C49399A289}.Debug|Any CPU.Build.0 = Debug|Any CPU - {67D81234-8589-4E11-85BC-C0C49399A289}.Release|Any CPU.ActiveCfg = Release|Any CPU - {67D81234-8589-4E11-85BC-C0C49399A289}.Release|Any CPU.Build.0 = Release|Any CPU - {67D81234-8589-4E11-85BC-C0C49399A289}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {67D81234-8589-4E11-85BC-C0C49399A289}.Verify|Any CPU.Build.0 = Verify|Any CPU - {E2D94FAA-A782-4D17-89A0-0F4B5D3BB021}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E2D94FAA-A782-4D17-89A0-0F4B5D3BB021}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E2D94FAA-A782-4D17-89A0-0F4B5D3BB021}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E2D94FAA-A782-4D17-89A0-0F4B5D3BB021}.Release|Any CPU.Build.0 = Release|Any CPU - {E2D94FAA-A782-4D17-89A0-0F4B5D3BB021}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {E2D94FAA-A782-4D17-89A0-0F4B5D3BB021}.Verify|Any CPU.Build.0 = Verify|Any CPU - {11544D61-62C6-4B24-BBD7-8685D7786AE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {11544D61-62C6-4B24-BBD7-8685D7786AE9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {11544D61-62C6-4B24-BBD7-8685D7786AE9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {11544D61-62C6-4B24-BBD7-8685D7786AE9}.Release|Any CPU.Build.0 = Release|Any CPU - {11544D61-62C6-4B24-BBD7-8685D7786AE9}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {11544D61-62C6-4B24-BBD7-8685D7786AE9}.Verify|Any CPU.Build.0 = Verify|Any CPU - {5DCEC2BD-40A3-458A-BEBC-C2FC0D4D451B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5DCEC2BD-40A3-458A-BEBC-C2FC0D4D451B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5DCEC2BD-40A3-458A-BEBC-C2FC0D4D451B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5DCEC2BD-40A3-458A-BEBC-C2FC0D4D451B}.Release|Any CPU.Build.0 = Release|Any CPU - {5DCEC2BD-40A3-458A-BEBC-C2FC0D4D451B}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {5DCEC2BD-40A3-458A-BEBC-C2FC0D4D451B}.Verify|Any CPU.Build.0 = Verify|Any CPU - {C50B2B1F-AF13-4DAB-8F56-788155017318}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C50B2B1F-AF13-4DAB-8F56-788155017318}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C50B2B1F-AF13-4DAB-8F56-788155017318}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C50B2B1F-AF13-4DAB-8F56-788155017318}.Release|Any CPU.Build.0 = Release|Any CPU - {C50B2B1F-AF13-4DAB-8F56-788155017318}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {C50B2B1F-AF13-4DAB-8F56-788155017318}.Verify|Any CPU.Build.0 = Verify|Any CPU - {189C9474-B406-4356-A367-FBC882E9BA4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {189C9474-B406-4356-A367-FBC882E9BA4B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {189C9474-B406-4356-A367-FBC882E9BA4B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {189C9474-B406-4356-A367-FBC882E9BA4B}.Release|Any CPU.Build.0 = Release|Any CPU - {189C9474-B406-4356-A367-FBC882E9BA4B}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {189C9474-B406-4356-A367-FBC882E9BA4B}.Verify|Any CPU.Build.0 = Verify|Any CPU - {B953A044-440C-43C0-B2CC-2585504221A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B953A044-440C-43C0-B2CC-2585504221A9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B953A044-440C-43C0-B2CC-2585504221A9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B953A044-440C-43C0-B2CC-2585504221A9}.Release|Any CPU.Build.0 = Release|Any CPU - {B953A044-440C-43C0-B2CC-2585504221A9}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {B953A044-440C-43C0-B2CC-2585504221A9}.Verify|Any CPU.Build.0 = Verify|Any CPU - {35500763-A1C6-468A-A0F0-7AE737D5CEF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {35500763-A1C6-468A-A0F0-7AE737D5CEF0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {35500763-A1C6-468A-A0F0-7AE737D5CEF0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {35500763-A1C6-468A-A0F0-7AE737D5CEF0}.Release|Any CPU.Build.0 = Release|Any CPU - {35500763-A1C6-468A-A0F0-7AE737D5CEF0}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {35500763-A1C6-468A-A0F0-7AE737D5CEF0}.Verify|Any CPU.Build.0 = Verify|Any CPU - {481F0C9E-DA19-4DBD-9D25-EBA1030AAA03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {481F0C9E-DA19-4DBD-9D25-EBA1030AAA03}.Debug|Any CPU.Build.0 = Debug|Any CPU - {481F0C9E-DA19-4DBD-9D25-EBA1030AAA03}.Release|Any CPU.ActiveCfg = Release|Any CPU - {481F0C9E-DA19-4DBD-9D25-EBA1030AAA03}.Release|Any CPU.Build.0 = Release|Any CPU - {481F0C9E-DA19-4DBD-9D25-EBA1030AAA03}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {481F0C9E-DA19-4DBD-9D25-EBA1030AAA03}.Verify|Any CPU.Build.0 = Verify|Any CPU - {35DE0E35-4E3A-46D7-B175-80CA10276BE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {35DE0E35-4E3A-46D7-B175-80CA10276BE7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {35DE0E35-4E3A-46D7-B175-80CA10276BE7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {35DE0E35-4E3A-46D7-B175-80CA10276BE7}.Release|Any CPU.Build.0 = Release|Any CPU - {35DE0E35-4E3A-46D7-B175-80CA10276BE7}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {35DE0E35-4E3A-46D7-B175-80CA10276BE7}.Verify|Any CPU.Build.0 = Verify|Any CPU - {DCAAF1DB-BEA0-4A6F-8F67-A35A9891A7A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DCAAF1DB-BEA0-4A6F-8F67-A35A9891A7A9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DCAAF1DB-BEA0-4A6F-8F67-A35A9891A7A9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DCAAF1DB-BEA0-4A6F-8F67-A35A9891A7A9}.Release|Any CPU.Build.0 = Release|Any CPU - {DCAAF1DB-BEA0-4A6F-8F67-A35A9891A7A9}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {DCAAF1DB-BEA0-4A6F-8F67-A35A9891A7A9}.Verify|Any CPU.Build.0 = Verify|Any CPU - {B3CE0FC0-BB92-47F3-B43E-92B87F7956B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B3CE0FC0-BB92-47F3-B43E-92B87F7956B8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B3CE0FC0-BB92-47F3-B43E-92B87F7956B8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B3CE0FC0-BB92-47F3-B43E-92B87F7956B8}.Release|Any CPU.Build.0 = Release|Any CPU - {B3CE0FC0-BB92-47F3-B43E-92B87F7956B8}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {B3CE0FC0-BB92-47F3-B43E-92B87F7956B8}.Verify|Any CPU.Build.0 = Verify|Any CPU - {730E1D38-BA80-48C7-B05C-E2BD29F38851}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {730E1D38-BA80-48C7-B05C-E2BD29F38851}.Debug|Any CPU.Build.0 = Debug|Any CPU - {730E1D38-BA80-48C7-B05C-E2BD29F38851}.Release|Any CPU.ActiveCfg = Release|Any CPU - {730E1D38-BA80-48C7-B05C-E2BD29F38851}.Release|Any CPU.Build.0 = Release|Any CPU - {730E1D38-BA80-48C7-B05C-E2BD29F38851}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {730E1D38-BA80-48C7-B05C-E2BD29F38851}.Verify|Any CPU.Build.0 = Verify|Any CPU - {7F957CC0-79C3-48A1-9A3E-47BED7539248}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7F957CC0-79C3-48A1-9A3E-47BED7539248}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7F957CC0-79C3-48A1-9A3E-47BED7539248}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7F957CC0-79C3-48A1-9A3E-47BED7539248}.Release|Any CPU.Build.0 = Release|Any CPU - {7F957CC0-79C3-48A1-9A3E-47BED7539248}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {7F957CC0-79C3-48A1-9A3E-47BED7539248}.Verify|Any CPU.Build.0 = Verify|Any CPU - {A7AE8091-3AC8-42A3-ACEB-32F49A8B05D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A7AE8091-3AC8-42A3-ACEB-32F49A8B05D1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A7AE8091-3AC8-42A3-ACEB-32F49A8B05D1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A7AE8091-3AC8-42A3-ACEB-32F49A8B05D1}.Release|Any CPU.Build.0 = Release|Any CPU - {A7AE8091-3AC8-42A3-ACEB-32F49A8B05D1}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {A7AE8091-3AC8-42A3-ACEB-32F49A8B05D1}.Verify|Any CPU.Build.0 = Verify|Any CPU - {B8B07C7C-E7C8-4272-AAA4-E4ED4CCD249C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B8B07C7C-E7C8-4272-AAA4-E4ED4CCD249C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B8B07C7C-E7C8-4272-AAA4-E4ED4CCD249C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B8B07C7C-E7C8-4272-AAA4-E4ED4CCD249C}.Release|Any CPU.Build.0 = Release|Any CPU - {B8B07C7C-E7C8-4272-AAA4-E4ED4CCD249C}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {B8B07C7C-E7C8-4272-AAA4-E4ED4CCD249C}.Verify|Any CPU.Build.0 = Verify|Any CPU - {42270230-D6FC-4FE8-ACE9-334006BF6692}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {42270230-D6FC-4FE8-ACE9-334006BF6692}.Debug|Any CPU.Build.0 = Debug|Any CPU - {42270230-D6FC-4FE8-ACE9-334006BF6692}.Release|Any CPU.ActiveCfg = Release|Any CPU - {42270230-D6FC-4FE8-ACE9-334006BF6692}.Release|Any CPU.Build.0 = Release|Any CPU - {42270230-D6FC-4FE8-ACE9-334006BF6692}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {42270230-D6FC-4FE8-ACE9-334006BF6692}.Verify|Any CPU.Build.0 = Verify|Any CPU - {3C9C7C3E-452D-4ECE-9124-854406758A6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3C9C7C3E-452D-4ECE-9124-854406758A6D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3C9C7C3E-452D-4ECE-9124-854406758A6D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3C9C7C3E-452D-4ECE-9124-854406758A6D}.Release|Any CPU.Build.0 = Release|Any CPU - {3C9C7C3E-452D-4ECE-9124-854406758A6D}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {3C9C7C3E-452D-4ECE-9124-854406758A6D}.Verify|Any CPU.Build.0 = Verify|Any CPU - {C25EA45A-358C-43F7-9A61-8F68632730F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C25EA45A-358C-43F7-9A61-8F68632730F3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C25EA45A-358C-43F7-9A61-8F68632730F3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C25EA45A-358C-43F7-9A61-8F68632730F3}.Release|Any CPU.Build.0 = Release|Any CPU - {C25EA45A-358C-43F7-9A61-8F68632730F3}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {C25EA45A-358C-43F7-9A61-8F68632730F3}.Verify|Any CPU.Build.0 = Verify|Any CPU - {F1FE2173-62BD-4D3A-92C1-A3ECB2117252}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F1FE2173-62BD-4D3A-92C1-A3ECB2117252}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F1FE2173-62BD-4D3A-92C1-A3ECB2117252}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F1FE2173-62BD-4D3A-92C1-A3ECB2117252}.Release|Any CPU.Build.0 = Release|Any CPU - {F1FE2173-62BD-4D3A-92C1-A3ECB2117252}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {F1FE2173-62BD-4D3A-92C1-A3ECB2117252}.Verify|Any CPU.Build.0 = Verify|Any CPU - {0F3C467A-ED89-4348-9210-FC2D358E20C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0F3C467A-ED89-4348-9210-FC2D358E20C5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0F3C467A-ED89-4348-9210-FC2D358E20C5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0F3C467A-ED89-4348-9210-FC2D358E20C5}.Release|Any CPU.Build.0 = Release|Any CPU - {0F3C467A-ED89-4348-9210-FC2D358E20C5}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {0F3C467A-ED89-4348-9210-FC2D358E20C5}.Verify|Any CPU.Build.0 = Verify|Any CPU - {FA9FA942-3E9F-49B5-A622-396DB0FC791F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FA9FA942-3E9F-49B5-A622-396DB0FC791F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FA9FA942-3E9F-49B5-A622-396DB0FC791F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FA9FA942-3E9F-49B5-A622-396DB0FC791F}.Release|Any CPU.Build.0 = Release|Any CPU - {FA9FA942-3E9F-49B5-A622-396DB0FC791F}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {FA9FA942-3E9F-49B5-A622-396DB0FC791F}.Verify|Any CPU.Build.0 = Verify|Any CPU - {4BDBE8A1-CF75-4049-9B3D-B194B1F45369}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4BDBE8A1-CF75-4049-9B3D-B194B1F45369}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4BDBE8A1-CF75-4049-9B3D-B194B1F45369}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4BDBE8A1-CF75-4049-9B3D-B194B1F45369}.Release|Any CPU.Build.0 = Release|Any CPU - {4BDBE8A1-CF75-4049-9B3D-B194B1F45369}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {4BDBE8A1-CF75-4049-9B3D-B194B1F45369}.Verify|Any CPU.Build.0 = Verify|Any CPU - {311A3010-B938-4832-9D3A-21A1A56FE5EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {311A3010-B938-4832-9D3A-21A1A56FE5EA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {311A3010-B938-4832-9D3A-21A1A56FE5EA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {311A3010-B938-4832-9D3A-21A1A56FE5EA}.Release|Any CPU.Build.0 = Release|Any CPU - {311A3010-B938-4832-9D3A-21A1A56FE5EA}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {311A3010-B938-4832-9D3A-21A1A56FE5EA}.Verify|Any CPU.Build.0 = Verify|Any CPU - {1B42519B-24C2-4141-83A3-AB68AB09EE28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1B42519B-24C2-4141-83A3-AB68AB09EE28}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1B42519B-24C2-4141-83A3-AB68AB09EE28}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1B42519B-24C2-4141-83A3-AB68AB09EE28}.Release|Any CPU.Build.0 = Release|Any CPU - {1B42519B-24C2-4141-83A3-AB68AB09EE28}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {1B42519B-24C2-4141-83A3-AB68AB09EE28}.Verify|Any CPU.Build.0 = Verify|Any CPU - {7F18BAB2-6296-4248-9833-C65A1ED00C8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7F18BAB2-6296-4248-9833-C65A1ED00C8D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7F18BAB2-6296-4248-9833-C65A1ED00C8D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7F18BAB2-6296-4248-9833-C65A1ED00C8D}.Release|Any CPU.Build.0 = Release|Any CPU - {7F18BAB2-6296-4248-9833-C65A1ED00C8D}.Verify|Any CPU.ActiveCfg = Verify|Any CPU - {7F18BAB2-6296-4248-9833-C65A1ED00C8D}.Verify|Any CPU.Build.0 = Verify|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {3773F071-12A7-4E2D-93DE-EB4AD04D2CB9} - EndGlobalSection -EndGlobal diff --git a/Src/AutoFixture.NUnit2.slnf b/Src/AutoFixture.NUnit2.slnf deleted file mode 100644 index 21453e39..00000000 --- a/Src/AutoFixture.NUnit2.slnf +++ /dev/null @@ -1,12 +0,0 @@ -{ - "solution": { - "path": "All.sln", - "projects": [ - "AutoFixture.NUnit2.UnitTest\\AutoFixture.NUnit2.UnitTest.csproj", - "AutoFixture.NUnit2\\AutoFixture.NUnit2.csproj", - "AutoFixtureUnitTest\\AutoFixtureUnitTest.csproj", - "AutoFixture\\AutoFixture.csproj", - "TestTypeFoundation\\TestTypeFoundation.csproj" - ] - } -} \ No newline at end of file diff --git a/Src/AutoFixture.NUnit3.slnf b/Src/AutoFixture.NUnit3.slnf deleted file mode 100644 index a4f71a89..00000000 --- a/Src/AutoFixture.NUnit3.slnf +++ /dev/null @@ -1,12 +0,0 @@ -{ - "solution": { - "path": "All.sln", - "projects": [ - "AutoFixture.NUnit3.UnitTest\\AutoFixture.NUnit3.UnitTest.csproj", - "AutoFixture.NUnit3\\AutoFixture.NUnit3.csproj", - "AutoFixtureUnitTest\\AutoFixtureUnitTest.csproj", - "AutoFixture\\AutoFixture.csproj", - "TestTypeFoundation\\TestTypeFoundation.csproj" - ] - } -} \ No newline at end of file diff --git a/Src/AutoFixture.sln.DotSettings b/Src/AutoFixture.sln.DotSettings deleted file mode 100644 index e76b93a7..00000000 --- a/Src/AutoFixture.sln.DotSettings +++ /dev/null @@ -1,5 +0,0 @@ - - ..\All.sln.DotSettings - True - True - 1 diff --git a/Src/AutoFixture.slnf b/Src/AutoFixture.slnf deleted file mode 100644 index bca857e0..00000000 --- a/Src/AutoFixture.slnf +++ /dev/null @@ -1,13 +0,0 @@ -{ - "solution": { - "path": "All.sln", - "projects": [ - "AutoFixture\\AutoFixture.csproj", - "AutoFixtureUnitTest\\AutoFixtureUnitTest.csproj", - "AutoFixture.SeedExtensions\\AutoFixture.SeedExtensions.csproj", - "AutoFixture.SeedExtensions.UnitTest\\AutoFixture.SeedExtensions.UnitTest.csproj", - "AutoFixtureDocumentationTest\\AutoFixtureDocumentationTest.csproj", - "TestTypeFoundation\\TestTypeFoundation.csproj" - ] - } -} \ No newline at end of file diff --git a/Src/AutoFixture.xUnit.UnitTest/AutoFixture.xUnit.UnitTest.csproj b/Src/AutoFixture.xUnit.UnitTest/AutoFixture.xUnit.UnitTest.csproj index 397d7b55..179767cf 100644 --- a/Src/AutoFixture.xUnit.UnitTest/AutoFixture.xUnit.UnitTest.csproj +++ b/Src/AutoFixture.xUnit.UnitTest/AutoFixture.xUnit.UnitTest.csproj @@ -1,32 +1,26 @@  - - + + - net452 + net452;net462 AutoFixture.xUnit.net.UnitTest AutoFixture.Xunit.UnitTest AutoFixture.Xunit.UnitTest + - - - + - - - - - diff --git a/Src/AutoFixture.xUnit.UnitTest/Scenario.cs b/Src/AutoFixture.xUnit.UnitTest/Scenario.cs index ca00dab5..32ee768a 100644 --- a/Src/AutoFixture.xUnit.UnitTest/Scenario.cs +++ b/Src/AutoFixture.xUnit.UnitTest/Scenario.cs @@ -18,7 +18,7 @@ public void AutoDataProvidesCorrectInteger(int primitiveValue) [Theory, AutoData] public void AutoDataProvidesCorrectString(string text) { - Assert.True(text.StartsWith("text")); + Assert.True(text.StartsWith("text", StringComparison.Ordinal)); } [Theory, AutoData] diff --git a/Src/AutoFixture.xUnit.slnf b/Src/AutoFixture.xUnit.slnf deleted file mode 100644 index bded2bf0..00000000 --- a/Src/AutoFixture.xUnit.slnf +++ /dev/null @@ -1,12 +0,0 @@ -{ - "solution": { - "path": "All.sln", - "projects": [ - "AutoFixture.xUnit.UnitTest\\AutoFixture.xUnit.UnitTest.csproj", - "AutoFixture.xUnit\\AutoFixture.xUnit.csproj", - "AutoFixtureUnitTest\\AutoFixtureUnitTest.csproj", - "AutoFixture\\AutoFixture.csproj", - "TestTypeFoundation\\TestTypeFoundation.csproj" - ] - } -} \ No newline at end of file diff --git a/Src/AutoFixture.xUnit/AutoFixture.xUnit.csproj b/Src/AutoFixture.xUnit/AutoFixture.xUnit.csproj index 757862dc..6f7586fc 100644 --- a/Src/AutoFixture.xUnit/AutoFixture.xUnit.csproj +++ b/Src/AutoFixture.xUnit/AutoFixture.xUnit.csproj @@ -1,12 +1,11 @@  - + - net452 + net452;net462 AutoFixture.xUnit.net AutoFixture.Xunit AutoFixture.Xunit - Copyright © Ploeh 2011 AutoFixture.Xunit @@ -15,13 +14,11 @@ + - - - diff --git a/Src/AutoFixture.xUnit2.slnf b/Src/AutoFixture.xUnit2.slnf deleted file mode 100644 index 10852652..00000000 --- a/Src/AutoFixture.xUnit2.slnf +++ /dev/null @@ -1,12 +0,0 @@ -{ - "solution": { - "path": "All.sln", - "projects": [ - "AutoFixture.xUnit2.UnitTest\\AutoFixture.xUnit2.UnitTest.csproj", - "AutoFixture.xUnit2\\AutoFixture.xUnit2.csproj", - "AutoFixtureUnitTest\\AutoFixtureUnitTest.csproj", - "AutoFixture\\AutoFixture.csproj", - "TestTypeFoundation\\TestTypeFoundation.csproj" - ] - } -} \ No newline at end of file diff --git a/Src/AutoFoq.slnf b/Src/AutoFoq.slnf deleted file mode 100644 index 9e942d95..00000000 --- a/Src/AutoFoq.slnf +++ /dev/null @@ -1,12 +0,0 @@ -{ - "solution": { - "path": "All.sln", - "projects": [ - "AutoFixtureUnitTest\\AutoFixtureUnitTest.csproj", - "AutoFixture\\AutoFixture.csproj", - "AutoFoqUnitTest\\AutoFoqUnitTest.fsproj", - "AutoFoq\\AutoFoq.fsproj", - "TestTypeFoundation\\TestTypeFoundation.csproj" - ] - } -} \ No newline at end of file diff --git a/Src/AutoMoq.slnf b/Src/AutoMoq.slnf deleted file mode 100644 index ca48dd31..00000000 --- a/Src/AutoMoq.slnf +++ /dev/null @@ -1,12 +0,0 @@ -{ - "solution": { - "path": "All.sln", - "projects": [ - "AutoFixtureUnitTest\\AutoFixtureUnitTest.csproj", - "AutoFixture\\AutoFixture.csproj", - "AutoMoqUnitTest\\AutoMoqUnitTest.csproj", - "AutoMoq\\AutoMoq.csproj", - "TestTypeFoundation\\TestTypeFoundation.csproj" - ] - } -} \ No newline at end of file diff --git a/Src/AutoNSubstitute.slnf b/Src/AutoNSubstitute.slnf deleted file mode 100644 index fd502e1c..00000000 --- a/Src/AutoNSubstitute.slnf +++ /dev/null @@ -1,14 +0,0 @@ -{ - "solution": { - "path": "All.sln", - "projects": [ - "AutoFixtureUnitTest\\AutoFixtureUnitTest.csproj", - "AutoFixture\\AutoFixture.csproj", - "AutoNSubstitute.NSubstitute3UnitTest\\AutoNSubstitute.NSubstitute3UnitTest.csproj", - "AutoNSubstitute.NSubstitute4UnitTest\\AutoNSubstitute.NSubstitute4UnitTest.csproj", - "AutoNSubstituteUnitTest\\AutoNSubstituteUnitTest.csproj", - "AutoNSubstitute\\AutoNSubstitute.csproj", - "TestTypeFoundation\\TestTypeFoundation.csproj" - ] - } -} \ No newline at end of file diff --git a/Src/AutoRhinoMock.slnf b/Src/AutoRhinoMock.slnf deleted file mode 100644 index 147974a8..00000000 --- a/Src/AutoRhinoMock.slnf +++ /dev/null @@ -1,12 +0,0 @@ -{ - "solution": { - "path": "All.sln", - "projects": [ - "AutoFixtureUnitTest\\AutoFixtureUnitTest.csproj", - "AutoFixture\\AutoFixture.csproj", - "AutoRhinoMockUnitTest\\AutoRhinoMockUnitTest.csproj", - "AutoRhinoMock\\AutoRhinoMock.csproj", - "TestTypeFoundation\\TestTypeFoundation.csproj" - ] - } -} \ No newline at end of file diff --git a/Src/CodeAnalysis.AutoFixture.ruleset b/Src/CodeAnalysis.AutoFixture.ruleset deleted file mode 100644 index 5449996f..00000000 --- a/Src/CodeAnalysis.AutoFixture.ruleset +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Src/CodeAnalysis.Empty.ruleset b/Src/CodeAnalysis.Empty.ruleset deleted file mode 100644 index e7f77caf..00000000 --- a/Src/CodeAnalysis.Empty.ruleset +++ /dev/null @@ -1,844 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Src/CodeAnalysis.Test.ruleset b/Src/CodeAnalysis.Test.ruleset deleted file mode 100644 index 18e040c6..00000000 --- a/Src/CodeAnalysis.Test.ruleset +++ /dev/null @@ -1,609 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Src/Common.FSharp.props b/Src/Common.FSharp.props deleted file mode 100644 index 171f79f0..00000000 --- a/Src/Common.FSharp.props +++ /dev/null @@ -1,7 +0,0 @@ - - - - true - - \ No newline at end of file diff --git a/Src/Common.Test.props b/Src/Common.Test.props deleted file mode 100644 index 2e7fb838..00000000 --- a/Src/Common.Test.props +++ /dev/null @@ -1,19 +0,0 @@ - - - False - false - - true - true - - false - $(MSBuildThisFileDirectory)\CodeAnalysis.Test.ruleset - - false - - false - - - true - - diff --git a/Src/Common.Test.xUnit.props b/Src/Common.Test.xUnit.props deleted file mode 100644 index 0d854f40..00000000 --- a/Src/Common.Test.xUnit.props +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/Src/Idioms.FsCheck.slnf b/Src/Idioms.FsCheck.slnf deleted file mode 100644 index 1d75093d..00000000 --- a/Src/Idioms.FsCheck.slnf +++ /dev/null @@ -1,16 +0,0 @@ -{ - "solution": { - "path": "All.sln", - "projects": [ - "AutoFixtureUnitTest\\AutoFixtureUnitTest.csproj", - "AutoFixture\\AutoFixture.csproj", - "Idioms.FsCheck.FsCheck1UnitTest\\Idioms.FsCheck.FsCheck1UnitTest.fsproj", - "Idioms.FsCheck.FsCheck2UnitTest\\Idioms.FsCheck.FsCheck2UnitTest.fsproj", - "Idioms.FsCheckUnitTest\\Idioms.FsCheckUnitTest.fsproj", - "Idioms.FsCheck\\Idioms.FsCheck.fsproj", - "IdiomsUnitTest\\IdiomsUnitTest.csproj", - "Idioms\\Idioms.csproj", - "TestTypeFoundation\\TestTypeFoundation.csproj" - ] - } -} \ No newline at end of file diff --git a/Src/Idioms.slnf b/Src/Idioms.slnf deleted file mode 100644 index 86f75c54..00000000 --- a/Src/Idioms.slnf +++ /dev/null @@ -1,12 +0,0 @@ -{ - "solution": { - "path": "All.sln", - "projects": [ - "AutoFixtureUnitTest\\AutoFixtureUnitTest.csproj", - "AutoFixture\\AutoFixture.csproj", - "IdiomsUnitTest\\IdiomsUnitTest.csproj", - "Idioms\\Idioms.csproj", - "TestTypeFoundation\\TestTypeFoundation.csproj" - ] - } -} \ No newline at end of file diff --git a/Src/TestTypeFoundation/GuardedConstructorHostHoldingStaticReadOnlyField.cs b/Src/TestTypeFoundation/GuardedConstructorHostHoldingStaticReadOnlyField.cs index f3648fc1..48f0f075 100644 --- a/Src/TestTypeFoundation/GuardedConstructorHostHoldingStaticReadOnlyField.cs +++ b/Src/TestTypeFoundation/GuardedConstructorHostHoldingStaticReadOnlyField.cs @@ -5,11 +5,11 @@ namespace TestTypeFoundation public class GuardedConstructorHostHoldingStaticReadOnlyField where TItem : class { - public static readonly TStaticField Field = default(TStaticField); + public static readonly TStaticField Field; public GuardedConstructorHostHoldingStaticReadOnlyField(TItem item) { - if (item == null) + if (item is null) { throw new ArgumentNullException(nameof(item)); } diff --git a/Src/TestTypeFoundation/RecordType.cs b/Src/TestTypeFoundation/RecordType.cs new file mode 100644 index 00000000..847f241d --- /dev/null +++ b/Src/TestTypeFoundation/RecordType.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace TestTypeFoundation +{ + public class RecordType : IEquatable> + { + public RecordType(T value) + { + this.Value = value; + } + + public T Value { get; } + + public bool Equals(RecordType other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + return EqualityComparer.Default.Equals(this.Value, other.Value); + } + + public override bool Equals(object obj) + { + return this.Equals(obj as RecordType); + } + + public override int GetHashCode() + { + return EqualityComparer.Default.GetHashCode(this.Value); + } + } +} \ No newline at end of file diff --git a/Src/TestTypeFoundation/TestTypeFoundation.csproj b/Src/TestTypeFoundation/TestTypeFoundation.csproj index e35da2e2..fae2fee6 100644 --- a/Src/TestTypeFoundation/TestTypeFoundation.csproj +++ b/Src/TestTypeFoundation/TestTypeFoundation.csproj @@ -1,9 +1,9 @@  - - + + - net452;netstandard1.2 + net452;net462;netstandard2.0 TestTypeFoundation TestTypeFoundation diff --git a/Src/TestTypeFoundation/TypeWithOverloadedMembers.cs b/Src/TestTypeFoundation/TypeWithOverloadedMembers.cs index cede6381..a9ad6583 100644 --- a/Src/TestTypeFoundation/TypeWithOverloadedMembers.cs +++ b/Src/TestTypeFoundation/TypeWithOverloadedMembers.cs @@ -1,4 +1,7 @@ -namespace TestTypeFoundation +using System; +using System.Reflection; + +namespace TestTypeFoundation { public class TypeWithOverloadedMembers { @@ -19,5 +22,9 @@ public void DoSomething(object x, object y) public void DoSomething(object x, object y, object z) { } + + public static MethodInfo GetDoSomethingMethod(params Type[] parameterTypes) => + typeof(TypeWithOverloadedMembers) + .GetMethod(nameof(DoSomething), parameterTypes); } } diff --git a/build.cmd b/build.cmd index 486623a4..b08cc590 100644 --- a/build.cmd +++ b/build.cmd @@ -1,25 +1,7 @@ -@echo off -cls +:; set -eo pipefail +:; SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd) +:; ${SCRIPT_DIR}/build.sh "$@" +:; exit $? -SET SCRIPT_DIR=%~dp0 -SET BUILD_DIR=%SCRIPT_DIR%\build -SET TOOLS_DIR=%BUILD_DIR%\tools -SET NUGET_PATH=%TOOLS_DIR%\nuget.exe - -IF NOT EXIST %TOOLS_DIR%\ ( - mkdir %TOOLS_DIR% -) - -IF NOT EXIST %NUGET_PATH% ( - echo Downloading NuGet.exe ... - powershell -Command "Start-BitsTransfer -Source https://dist.nuget.org/win-x86-commandline/v4.3.0/nuget.exe -Destination %NUGET_PATH%" -) - -IF NOT EXIST "%TOOLS_DIR%\NUnit.Runners.2.6.2\" ( - %NUGET_PATH% install "NUnit.Runners" -Version 2.6.2 -OutputDirectory %TOOLS_DIR% -) - -dotnet tool restore - -echo Running FAKE Build... -dotnet tool run fake --silent run %SCRIPT_DIR%\build.fsx %* +@ECHO OFF +powershell -ExecutionPolicy ByPass -NoProfile -File "%~dp0build.ps1" %* diff --git a/build.fsx.lock b/build.fsx.lock deleted file mode 100644 index 6003be7b..00000000 --- a/build.fsx.lock +++ /dev/null @@ -1,232 +0,0 @@ -STORAGE: NONE -RESTRICTION: == netstandard2.0 -NUGET - remote: https://api.nuget.org/v3/index.json - BlackFox.VsWhere (1.1) - FSharp.Core (>= 4.2.3) - Microsoft.Win32.Registry (>= 4.7) - Fake.BuildServer.AppVeyor (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - Fake.Net.Http (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.CommandLineParsing (5.20.4) - FParsec (>= 1.1.1) - FSharp.Core (>= 4.7.2) - Fake.Core.Context (5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.Environment (5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.FakeVar (5.20.4) - Fake.Core.Context (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.Process (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.FakeVar (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FSharp.Core (>= 4.7.2) - System.Collections.Immutable (>= 1.7.1) - Fake.Core.SemVer (5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.String (5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.Target (5.20.4) - Fake.Core.CommandLineParsing (>= 5.20.4) - Fake.Core.Context (>= 5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.FakeVar (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - FSharp.Control.Reactive (>= 4.4.2) - FSharp.Core (>= 4.7.2) - Fake.Core.Tasks (5.20.4) - Fake.Core.Trace (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.Trace (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.FakeVar (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.Xml (5.20.4) - Fake.Core.String (>= 5.20.4) - FSharp.Core (>= 4.7.2) - FAKE.Dotnet (2.0) - Fake.DotNet.Cli (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.DotNet.MSBuild (>= 5.20.4) - Fake.DotNet.NuGet (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Mono.Posix.NETStandard (>= 1.0) - Newtonsoft.Json (>= 12.0.3) - Fake.DotNet.MSBuild (5.20.4) - BlackFox.VsWhere (>= 1.1) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FSharp.Core (>= 4.7.2) - MSBuild.StructuredLogger (>= 2.1.176) - Fake.DotNet.NuGet (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.SemVer (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Tasks (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.Core.Xml (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - Fake.Net.Http (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Newtonsoft.Json (>= 12.0.3) - NuGet.Protocol (>= 5.6) - Fake.DotNet.Testing.NUnit (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - Fake.Testing.Common (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.IO.FileSystem (5.20.4) - Fake.Core.String (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.IO.Zip (5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Net.Http (5.20.4) - Fake.Core.Trace (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Testing.Common (5.20.4) - Fake.Core.Trace (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Tools.Git (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.SemVer (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FSharp.Core (>= 4.7.2) - FParsec (1.1.1) - FSharp.Core (>= 4.3.4) - FSharp.Control.Reactive (5.0.2) - FSharp.Core (>= 4.7.2) - System.Reactive (>= 5.0) - FSharp.Core (5.0.2) - Microsoft.Build (16.11) - Microsoft.Build.Framework (16.11) - System.Security.Permissions (>= 4.7) - Microsoft.Build.Tasks.Core (16.11) - Microsoft.Build.Framework (>= 16.11) - Microsoft.Build.Utilities.Core (>= 16.11) - Microsoft.NET.StringTools (>= 1.0) - Microsoft.Win32.Registry (>= 4.3) - System.CodeDom (>= 4.4) - System.Collections.Immutable (>= 5.0) - System.Reflection.Metadata (>= 1.6) - System.Resources.Extensions (>= 4.6) - System.Security.Cryptography.Pkcs (>= 4.7) - System.Security.Cryptography.Xml (>= 4.7) - System.Security.Permissions (>= 4.7) - System.Threading.Tasks.Dataflow (>= 4.9) - Microsoft.Build.Utilities.Core (16.11) - Microsoft.Build.Framework (>= 16.11) - Microsoft.NET.StringTools (>= 1.0) - Microsoft.Win32.Registry (>= 4.3) - System.Collections.Immutable (>= 5.0) - System.Configuration.ConfigurationManager (>= 4.7) - System.Security.Permissions (>= 4.7) - System.Text.Encoding.CodePages (>= 4.0.1) - Microsoft.NET.StringTools (1.0) - System.Memory (>= 4.5.4) - System.Runtime.CompilerServices.Unsafe (>= 5.0) - Microsoft.NETCore.Platforms (5.0.2) - Microsoft.NETCore.Targets (5.0) - Microsoft.Win32.Registry (5.0) - System.Buffers (>= 4.5.1) - System.Memory (>= 4.5.4) - System.Security.AccessControl (>= 5.0) - System.Security.Principal.Windows (>= 5.0) - Mono.Posix.NETStandard (1.0) - MSBuild.StructuredLogger (2.1.545) - Microsoft.Build (>= 16.10) - Microsoft.Build.Framework (>= 16.10) - Microsoft.Build.Tasks.Core (>= 16.10) - Microsoft.Build.Utilities.Core (>= 16.10) - Newtonsoft.Json (13.0.1) - NuGet.Common (5.11) - NuGet.Frameworks (>= 5.11) - NuGet.Configuration (5.11) - NuGet.Common (>= 5.11) - System.Security.Cryptography.ProtectedData (>= 4.4) - NuGet.Frameworks (5.11) - NuGet.Packaging (5.11) - Newtonsoft.Json (>= 9.0.1) - NuGet.Configuration (>= 5.11) - NuGet.Versioning (>= 5.11) - System.Security.Cryptography.Cng (>= 5.0) - System.Security.Cryptography.Pkcs (>= 5.0) - NuGet.Protocol (5.11) - NuGet.Packaging (>= 5.11) - NuGet.Versioning (5.11) - System.Buffers (4.5.1) - System.CodeDom (5.0) - System.Collections.Immutable (5.0) - System.Memory (>= 4.5.4) - System.Configuration.ConfigurationManager (5.0) - System.Security.Cryptography.ProtectedData (>= 5.0) - System.Security.Permissions (>= 5.0) - System.Formats.Asn1 (5.0) - System.Buffers (>= 4.5.1) - System.Memory (>= 4.5.4) - System.Memory (4.5.4) - System.Buffers (>= 4.5.1) - System.Numerics.Vectors (>= 4.4) - System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - System.Numerics.Vectors (4.5) - System.Reactive (5.0) - System.Runtime.InteropServices.WindowsRuntime (>= 4.3) - System.Threading.Tasks.Extensions (>= 4.5.4) - System.Reflection.Metadata (5.0) - System.Collections.Immutable (>= 5.0) - System.Resources.Extensions (5.0) - System.Memory (>= 4.5.4) - System.Runtime (4.3.1) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) - System.Runtime.CompilerServices.Unsafe (5.0) - System.Runtime.InteropServices.WindowsRuntime (4.3) - System.Runtime (>= 4.3) - System.Security.AccessControl (5.0) - System.Security.Principal.Windows (>= 5.0) - System.Security.Cryptography.Cng (5.0) - System.Security.Cryptography.Pkcs (5.0.1) - System.Buffers (>= 4.5.1) - System.Formats.Asn1 (>= 5.0) - System.Memory (>= 4.5.4) - System.Security.Cryptography.Cng (>= 5.0) - System.Security.Cryptography.ProtectedData (5.0) - System.Memory (>= 4.5.4) - System.Security.Cryptography.Xml (5.0) - System.Memory (>= 4.5.4) - System.Security.Cryptography.Pkcs (>= 5.0) - System.Security.Permissions (>= 5.0) - System.Security.Permissions (5.0) - System.Security.AccessControl (>= 5.0) - System.Security.Principal.Windows (5.0) - System.Text.Encoding.CodePages (5.0) - System.Runtime.CompilerServices.Unsafe (>= 5.0) - System.Threading.Tasks.Dataflow (5.0) - System.Threading.Tasks.Extensions (4.5.4) - System.Runtime.CompilerServices.Unsafe (>= 4.5.3) diff --git a/build.ps1 b/build.ps1 new file mode 100644 index 00000000..2b5054bd --- /dev/null +++ b/build.ps1 @@ -0,0 +1,70 @@ +[CmdletBinding()] +Param( + [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)] + [string[]]$BuildArguments +) + +Write-Output "PowerShell $($PSVersionTable.PSEdition) version $($PSVersionTable.PSVersion)" + +Set-StrictMode -Version 2.0; $ErrorActionPreference = "Stop"; $ConfirmPreference = "None"; trap { Write-Error $_ -ErrorAction Continue; exit 1 } +$PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent + +########################################################################### +# CONFIGURATION +########################################################################### + +$BuildProjectFile = "$PSScriptRoot\build\_build.csproj" +$TempDirectory = "$PSScriptRoot\\.nuke\temp" + +$DotNetGlobalFile = "$PSScriptRoot\\global.json" +$DotNetInstallUrl = "https://dot.net/v1/dotnet-install.ps1" +$DotNetChannel = "Current" + +$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = 1 +$env:DOTNET_CLI_TELEMETRY_OPTOUT = 1 +$env:DOTNET_MULTILEVEL_LOOKUP = 0 +$env:NUKE_TELEMETRY_OPTOUT = 1 + +########################################################################### +# EXECUTION +########################################################################### + +function ExecSafe([scriptblock] $cmd) { + & $cmd + if ($LASTEXITCODE) { exit $LASTEXITCODE } +} + +# If dotnet CLI is installed globally and it matches requested version, use for execution +if ($null -ne (Get-Command "dotnet" -ErrorAction SilentlyContinue) -and ` + $(dotnet --version) -and $LASTEXITCODE -eq 0) { + $env:DOTNET_EXE = (Get-Command "dotnet").Path +} +else { + # Download install script + $DotNetInstallFile = "$TempDirectory\dotnet-install.ps1" + New-Item -ItemType Directory -Path $TempDirectory -Force | Out-Null + [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 + (New-Object System.Net.WebClient).DownloadFile($DotNetInstallUrl, $DotNetInstallFile) + + # If global.json exists, load expected version + if (Test-Path $DotNetGlobalFile) { + $DotNetGlobal = $(Get-Content $DotNetGlobalFile | Out-String | ConvertFrom-Json) + if ($DotNetGlobal.PSObject.Properties["sdk"] -and $DotNetGlobal.sdk.PSObject.Properties["version"]) { + $DotNetVersion = $DotNetGlobal.sdk.version + } + } + + # Install by channel or version + $DotNetDirectory = "$TempDirectory\dotnet-win" + if (!(Test-Path variable:DotNetVersion)) { + ExecSafe { & $DotNetInstallFile -InstallDir $DotNetDirectory -Channel $DotNetChannel -NoPath } + } else { + ExecSafe { & $DotNetInstallFile -InstallDir $DotNetDirectory -Version $DotNetVersion -NoPath } + } + $env:DOTNET_EXE = "$DotNetDirectory\dotnet.exe" +} + +Write-Output "Microsoft (R) .NET Core SDK version $(& $env:DOTNET_EXE --version)" + +ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet } +ExecSafe { & $env:DOTNET_EXE run --project $BuildProjectFile --no-build -- $BuildArguments } diff --git a/build.sh b/build.sh new file mode 100644 index 00000000..d2874960 --- /dev/null +++ b/build.sh @@ -0,0 +1,63 @@ +#!/usr/bin/env bash + +bash --version 2>&1 | head -n 1 + +set -eo pipefail +SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd) + +########################################################################### +# CONFIGURATION +########################################################################### + +BUILD_PROJECT_FILE="$SCRIPT_DIR/build/_build.csproj" +TEMP_DIRECTORY="$SCRIPT_DIR//.nuke/temp" + +DOTNET_GLOBAL_FILE="$SCRIPT_DIR//global.json" +DOTNET_INSTALL_URL="https://dot.net/v1/dotnet-install.sh" +DOTNET_CHANNEL="Current" + +export DOTNET_CLI_TELEMETRY_OPTOUT=1 +export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 +export DOTNET_MULTILEVEL_LOOKUP=0 +export NUKE_TELEMETRY_OPTOUT=1 + +########################################################################### +# EXECUTION +########################################################################### + +function FirstJsonValue { + perl -nle 'print $1 if m{"'"$1"'": "([^"]+)",?}' <<< "${@:2}" +} + +# If dotnet CLI is installed globally and it matches requested version, use for execution +if [ -x "$(command -v dotnet)" ] && dotnet --version &>/dev/null; then + export DOTNET_EXE="$(command -v dotnet)" +else + # Download install script + DOTNET_INSTALL_FILE="$TEMP_DIRECTORY/dotnet-install.sh" + mkdir -p "$TEMP_DIRECTORY" + curl -Lsfo "$DOTNET_INSTALL_FILE" "$DOTNET_INSTALL_URL" + chmod +x "$DOTNET_INSTALL_FILE" + + # If global.json exists, load expected version + if [[ -f "$DOTNET_GLOBAL_FILE" ]]; then + DOTNET_VERSION=$(FirstJsonValue "version" "$(cat "$DOTNET_GLOBAL_FILE")") + if [[ "$DOTNET_VERSION" == "" ]]; then + unset DOTNET_VERSION + fi + fi + + # Install by channel or version + DOTNET_DIRECTORY="$TEMP_DIRECTORY/dotnet-unix" + if [[ -z ${DOTNET_VERSION+x} ]]; then + "$DOTNET_INSTALL_FILE" --install-dir "$DOTNET_DIRECTORY" --channel "$DOTNET_CHANNEL" --no-path + else + "$DOTNET_INSTALL_FILE" --install-dir "$DOTNET_DIRECTORY" --version "$DOTNET_VERSION" --no-path + fi + export DOTNET_EXE="$DOTNET_DIRECTORY/dotnet" +fi + +echo "Microsoft (R) .NET Core SDK version $("$DOTNET_EXE" --version)" + +"$DOTNET_EXE" build "$BUILD_PROJECT_FILE" /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet +"$DOTNET_EXE" run --project "$BUILD_PROJECT_FILE" --no-build -- "$@" diff --git a/build/.editorconfig b/build/.editorconfig new file mode 100644 index 00000000..31e43dcd --- /dev/null +++ b/build/.editorconfig @@ -0,0 +1,11 @@ +[*.cs] +dotnet_style_qualification_for_field = false:warning +dotnet_style_qualification_for_property = false:warning +dotnet_style_qualification_for_method = false:warning +dotnet_style_qualification_for_event = false:warning +dotnet_style_require_accessibility_modifiers = never:warning + +csharp_style_expression_bodied_methods = true:silent +csharp_style_expression_bodied_properties = true:warning +csharp_style_expression_bodied_indexers = true:warning +csharp_style_expression_bodied_accessors = true:warning diff --git a/build/Build.cs b/build/Build.cs new file mode 100644 index 00000000..1ed3107b --- /dev/null +++ b/build/Build.cs @@ -0,0 +1,234 @@ +using System.Collections.Generic; +using System.Linq; +using Nuke.Common; +using Nuke.Common.CI; +using Nuke.Common.CI.GitHubActions; +using Nuke.Common.Git; +using Nuke.Common.IO; +using Nuke.Common.ProjectModel; +using Nuke.Common.Tooling; +using Nuke.Common.Tools.DotNet; +using Nuke.Common.Tools.GitVersion; +using Nuke.Common.Tools.ReportGenerator; +using Nuke.Common.Utilities.Collections; +using static Nuke.Common.IO.CompressionTasks; +using static Nuke.Common.IO.FileSystemTasks; +using static Nuke.Common.Tools.DotNet.DotNetTasks; +using static Nuke.Common.Tools.ReportGenerator.ReportGeneratorTasks; + +[ShutdownDotNetAfterServerBuild] +[DotNetVerbosityMapping] +[GitHubActions( + "continuous", + GitHubActionsImage.WindowsLatest, + AutoGenerate = false, + OnPullRequestBranches = new[] { MasterBranch, ReleaseBranch }, + PublishArtifacts = false, + InvokedTargets = new[] { nameof(Verify), nameof(Cover), nameof(Pack) }, + EnableGitHubToken = true)] +[GitHubActions( + "release", + GitHubActionsImage.WindowsLatest, + AutoGenerate = false, + OnPushTags = new[] { "v*" }, + PublishArtifacts = true, + InvokedTargets = new[] { nameof(Verify), nameof(Cover), nameof(Publish) }, + EnableGitHubToken = true, + ImportSecrets = new[] { Secrets.NuGetApiKey })] +partial class Build : NukeBuild +{ + public static int Main() => Execute(x => x.Compile); + + const string MasterBranch = "master"; + const string ReleaseBranch = "release/*"; + + [Parameter("Configuration to build - Default is 'Debug' (local) or 'Release' (server)")] + readonly Configuration Configuration = IsLocalBuild ? Configuration.Debug : Configuration.Release; + + [Solution] readonly Solution Solution; + [GitRepository] readonly GitRepository GitRepository; + [GitVersion] readonly GitVersion GitVersion; + [CI] readonly GitHubActions GitHubActions; + + [Parameter("GitHub auth token", Name = "github-token"), Secret] readonly string GitHubToken; + [Parameter("Forces the continuous integration build flag")] readonly bool CI; + + [Secret] [Parameter("NuGet API Key (secret)", Name = Secrets.NuGetApiKey)] readonly string NuGetApiKey; + readonly string NuGetSource = "https://api.nuget.org/v3/index.json"; + + IEnumerable Excluded => new[] + { + Solution.GetProject("_build"), + Solution.GetProject("TestTypeFoundation") + }; + + IEnumerable TestProjects => Solution.GetProjects("*Test"); + IEnumerable Libraries => Solution.Projects.Except(TestProjects).Except(Excluded); + IEnumerable CSharpLibraries => Libraries.Where(x => x.Is(ProjectType.CSharpProject)); + IEnumerable FSharpLibraries => Libraries.Where(x => x.Path.ToString().EndsWith(".fsproj")); + IEnumerable Packages => PackagesDirectory.GlobFiles("*.nupkg"); + + bool IsContinuousIntegration => IsServerBuild || CI; + + AbsolutePath SourceDirectory => RootDirectory / "src"; + AbsolutePath ArtifactsDirectory => RootDirectory / "artifacts"; + AbsolutePath TestResultsDirectory => ArtifactsDirectory / "testresults"; + AbsolutePath ReportsDirectory => ArtifactsDirectory / "reports"; + AbsolutePath PackagesDirectory => ArtifactsDirectory / "packages"; + + Target Clean => _ => _ + .Before(Restore) + .Executes(() => + { + SourceDirectory + .GlobDirectories("**/bin", "**/obj") + .ForEach(DeleteDirectory); + + EnsureCleanDirectory(ArtifactsDirectory); + }); + + Target Restore => _ => _ + .Executes(() => + { + DotNetRestore(s => s + .SetProjectFile(Solution) + .SetProcessArgumentConfigurator(a => a + .Add("/p:CheckEolTargetFramework=false"))); + }); + + Target Verify => _ => _ + .DependsOn(Restore) + .Before(Compile) + .Executes(() => + { + DotNetBuild(s => s + .SetProjectFile(Solution) + .SetConfiguration(Configuration.Verify) + .SetNoRestore(FinishedTargets.Contains(Restore)) + .SetContinuousIntegrationBuild(IsContinuousIntegration) + .SetProcessArgumentConfigurator(a => a + .Add("/p:CheckEolTargetFramework=false"))); + }); + + Target Compile => _ => _ + .DependsOn(Restore) + .Executes(() => + { + DotNetBuild(s => s + .SetProjectFile(Solution) + .SetConfiguration(Configuration) + .SetDeterministic(IsContinuousIntegration) + .SetContinuousIntegrationBuild(IsContinuousIntegration) + .SetVersion(GitVersion.NuGetVersionV2) + .SetAssemblyVersion(GitVersion.AssemblySemVer) + .SetFileVersion(GitVersion.AssemblySemFileVer) + .SetInformationalVersion(GitVersion.InformationalVersion) + .SetNoRestore(FinishedTargets.Contains(Restore)) + .SetProcessArgumentConfigurator(a => a + .Add("/p:CheckEolTargetFramework=false"))); + }); + + Target Test => _ => _ + .DependsOn(Compile) + .Produces(TestResultsDirectory / "*.zip") + .Executes(() => + { + DotNetTest(s => s + .SetConfiguration(Configuration) + .SetResultsDirectory(TestResultsDirectory) + .SetNoBuild(FinishedTargets.Contains(Compile)) + .SetLoggers("trx") + .SetProcessArgumentConfigurator(a => a + .Add("/p:CheckEolTargetFramework=false") + .Add("-- RunConfiguration.DisableAppDomain=true") + .Add("-- RunConfiguration.NoAutoReporters=true")) + .When(InvokedTargets.Contains(Cover), _ => _ + .SetDataCollector("XPlat Code Coverage")) + .CombineWith(TestProjects, (s, p) => s.SetProjectFile(p))); + + var testArchive = TestResultsDirectory / "TestResults.zip"; + if(testArchive.Exists()) + DeleteFile(testArchive); + + CompressZip(TestResultsDirectory, testArchive); + }); + + Target Cover => _ => _ + .DependsOn(Test) + .Consumes(Test) + .Before(Pack) + .Produces(ReportsDirectory / "*.zip") + .Executes(() => + { + ReportGenerator(_ => _ + .SetFramework("net5.0") + .SetAssemblyFilters("-TestTypeFoundation*") + .SetReports(TestResultsDirectory / "**" / "coverage.cobertura.xml") + .SetTargetDirectory(ReportsDirectory) + .SetReportTypes("lcov", ReportTypes.HtmlInline)); + + var coverageArchive = ReportsDirectory / "CoverageReport.zip"; + if(coverageArchive.Exists()) + DeleteFile(coverageArchive); + + CompressZip(ReportsDirectory, coverageArchive); + }); + + Target Pack => _ => _ + .DependsOn(Compile) + .Consumes(Compile) + .After(Test) + .Produces(PackagesDirectory / "*.nupkg") + .Executes(() => + { + DotNetPack(s => s + .SetConfiguration(Configuration) + .SetNoBuild(FinishedTargets.Contains(Compile)) + .SetOutputDirectory(PackagesDirectory) + .SetSymbolPackageFormat(DotNetSymbolPackageFormat.snupkg) + .EnableIncludeSymbols() + .SetDeterministic(IsContinuousIntegration) + .SetContinuousIntegrationBuild(IsContinuousIntegration) + .SetVersion(GitVersion.NuGetVersionV2) + .SetAssemblyVersion(GitVersion.AssemblySemVer) + .SetFileVersion(GitVersion.AssemblySemFileVer) + .SetInformationalVersion(GitVersion.InformationalVersion) + .SetProcessArgumentConfigurator(a => a + .Add("/p:CheckEolTargetFramework=false")) + .CombineWith(CSharpLibraries, (s, p) => s.SetProject(p))); + + DotNetPack(s => s + .SetConfiguration(Configuration) + .SetOutputDirectory(PackagesDirectory) + .SetSymbolPackageFormat(DotNetSymbolPackageFormat.snupkg) + .EnableIncludeSymbols() + .SetContinuousIntegrationBuild(IsContinuousIntegration) + .SetVersion(GitVersion.NuGetVersionV2) + .SetAssemblyVersion(GitVersion.AssemblySemVer) + .SetFileVersion(GitVersion.AssemblySemFileVer) + .SetInformationalVersion(GitVersion.InformationalVersion) + .SetProcessArgumentConfigurator(a => a + .Add("/p:CheckEolTargetFramework=false")) + .CombineWith(FSharpLibraries, (s, p) => s.SetProject(p))); + }); + + Target Publish => _ => _ + .DependsOn(Pack) + .Consumes(Pack) + .Executes(() => + { + DotNetNuGetPush(s => s + .EnableSkipDuplicate() + .When( + GitHubActions.IsOnSemVerTag(), + v => v + .SetApiKey(NuGetApiKey) + .SetSource(NuGetSource)) + .CombineWith(Packages, (_, p) => _.SetTargetPath(p))); + }); + + public static class Secrets + { + public const string NuGetApiKey = "NUGET_API_KEY"; + } +} \ No newline at end of file diff --git a/build/Configuration.cs b/build/Configuration.cs new file mode 100644 index 00000000..88c405b3 --- /dev/null +++ b/build/Configuration.cs @@ -0,0 +1,15 @@ +using System.ComponentModel; +using Nuke.Common.Tooling; + +[TypeConverter(typeof(TypeConverter))] +public class Configuration : Enumeration +{ + public static Configuration Debug = new() { Value = nameof(Debug) }; + public static Configuration Release = new() { Value = nameof(Release) }; + public static Configuration Verify = new() { Value = nameof(Verify) }; + + public static implicit operator string(Configuration configuration) + { + return configuration.Value; + } +} diff --git a/build/GitHubActionsExtensions.cs b/build/GitHubActionsExtensions.cs new file mode 100644 index 00000000..7a9a9a2f --- /dev/null +++ b/build/GitHubActionsExtensions.cs @@ -0,0 +1,19 @@ +using System.Text.RegularExpressions; + +namespace Nuke.Common.CI.GitHubActions +{ + public static class GitHubActionsExtensions + { + private static readonly Regex SemVerRef = new(@"^refs\/tags\/v(?\d+\.\d+\.\d+)", RegexOptions.Compiled); + + public static bool IsOnSemVerTag(this GitHubActions source) + { + if (string.IsNullOrWhiteSpace(source?.Ref)) + { + return false; + } + + return SemVerRef.IsMatch(source.Ref); + } + } +} \ No newline at end of file diff --git a/build/_build.csproj b/build/_build.csproj new file mode 100644 index 00000000..8deb9c00 --- /dev/null +++ b/build/_build.csproj @@ -0,0 +1,22 @@ + + + + Exe + net6.0 + + CS0649;CS0169 + .. + .. + 10 + + + $(NoWarn);NETSDK1138;NU1902;NU1903 + + + + + + + + + diff --git a/build/_build.csproj.DotSettings b/build/_build.csproj.DotSettings new file mode 100644 index 00000000..9b7b3fb2 --- /dev/null +++ b/build/_build.csproj.DotSettings @@ -0,0 +1,28 @@ + + DO_NOT_SHOW + DO_NOT_SHOW + DO_NOT_SHOW + DO_NOT_SHOW + Implicit + Implicit + ExpressionBody + 0 + NEXT_LINE + True + False + 120 + IF_OWNER_IS_SINGLE_LINE + WRAP_IF_LONG + False + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + True + True + True + True + True + True + True + True + True + True diff --git a/global.json b/global.json new file mode 100644 index 00000000..d8366ba9 --- /dev/null +++ b/global.json @@ -0,0 +1,6 @@ +{ + "sdk": { + "version": "6.0.0", + "rollForward": "latestMinor" + } +} \ No newline at end of file