提交 fa46f16e 编写于 作者: D Don Syme

mark tests as Expensive and enable VS tests in CI

上级 81aff2b1
......@@ -92,6 +92,7 @@ if /i '%ARG%' == 'all' (
REM Same as 'all' but smoke testing only
if /i '%ARG%' == 'ci' (
set SKIP_EXPENSIVE_TESTS=1
set BUILD_PORTABLE=1
set BUILD_VS=1
set BUILD_FSHARP_DATA_TYPEPROVIDERS=1
......@@ -107,17 +108,19 @@ if /i '%ARG%' == 'ci' (
REM These divide 'ci' into three chunks which can be done in parallel
if /i '%ARG%' == 'ci_part1' (
set SKIP_EXPENSIVE_TESTS=1
set BUILD_PORTABLE=1
set BUILD_VS=1
set BUILD_FSHARP_DATA_TYPEPROVIDERS=1
set TEST_COMPILERUNIT=1
set TEST_NET40_COREUNIT=1
set TEST_PORTABLE_COREUNIT=1
set TEST_VS=0
set TEST_VS=1
set TEST_TAGS=
)
if /i '%ARG%' == 'ci_part2' (
set SKIP_EXPENSIVE_TESTS=1
set BUILD_PORTABLE=1
set BUILD_FSHARP_DATA_TYPEPROVIDERS=1
set TEST_FSHARPQA_SUITE=1
......@@ -128,6 +131,7 @@ if /i '%ARG%' == 'ci_part2' (
if /i '%ARG%' == 'smoke' (
REM Smoke tests are a very small quick subset of tests
set SKIP_EXPENSIVE_TESTS=1
set TEST_COMPILERUNIT=0
set TEST_NET40_COREUNIT=0
set TEST_FSHARP_SUITE=1
......@@ -294,7 +298,7 @@ set FSHARP_TEST_SUITE_USE_NUNIT_RUNNER=true
%_msbuildexe% %msbuildflags% fsharp\fsharp.tests.fsproj /p:Configuration=%BUILD_CONFIG%
@if ERRORLEVEL 1 echo Error: fsharp cambridge tests for nunit failed && goto :failure
call RunTests.cmd %BUILD_CONFIG_LOWERCASECASE% fsharp %TEST_TAGS%
call RunTests.cmd %BUILD_CONFIG_LOWERCASE% fsharp %TEST_TAGS%
@if ERRORLEVEL 1 (
type testresults\FSharpNunit_Error.log
echo Error: 'RunTests.cmd %BUILD_CONFIG_LOWERCASE% fsharp %TEST_TAGS%' failed
......@@ -304,7 +308,7 @@ set FSHARP_TEST_SUITE_USE_NUNIT_RUNNER=
)
if '%TEST_FSHARPQA_SUITE%' == '1' (
call RunTests.cmd %BUILD_CONFIG_LOWERCASE% fsharpqa %TEST_TAGS%
call RunTests.cmd %BUILD_CONFIG_LOWERCASE% fsharpqa %TEST_TAGS%
@if ERRORLEVEL 1 (
type testresults\fsharpqa_failures.log
echo Error: 'RunTests.cmd %BUILD_CONFIG_LOWERCASE% fsharpqa %TEST_TAGS%' failed
......
......@@ -44,8 +44,7 @@ if /I "%APPVEYOR_CI%" == "1" (
set PARALLEL_ARG=-procs:%NUMBER_OF_PROCESSORS%
rem This can be set to 1 to reduce the number of permutations used and avoid some of the extra-time-consuming tests
set REDUCED_RUNTIME=1
if "%REDUCED_RUNTIME%" == "1" (
if "%SKIP_EXPENSIVE_TESTS%" == "1" (
set NO_TTAGS_ARG=%NO_TTAGS_ARG%,Expensive
set NO_TTAGS=%NO_TTAGS%,Expensive
)
......
......@@ -38,8 +38,8 @@ if exist test2-hw.fsx (set sourceshw=%sourceshw% test2-hw.fsx)
rem to run the 64 bit version of the code set FSC_BASIC_64=FSC_BASIC_64
set PERMUTATIONS_LIST=FSI_FILE FSI_STDIN FSI_STDIN_OPT FSI_STDIN_GUI FSC_BASIC %FSC_BASIC_64% FSC_HW FSC_O3 GENERATED_SIGNATURE EMPTY_SIGNATURE EMPTY_SIGNATURE_OPT FSC_OPT_MINUS_DEBUG FSC_OPT_PLUS_DEBUG FRENCH SPANISH AS_DLL WRAPPER_NAMESPACE WRAPPER_NAMESPACE_OPT
if "%REDUCED_RUNTIME%"=="1" (
echo REDUCED_RUNTIME set
if "%SKIP_EXPENSIVE_TESTS%"=="1" (
echo SKIP_EXPENSIVE_TESTS set
if not defined PERMUTATIONS (
powershell.exe %PSH_FLAGS% -command "&{& '%~d0%~p0\PickPermutations.ps1' '%cd%' '%FSC%' '%PERMUTATIONS_LIST%'}" > _perm.txt
......
......@@ -53,8 +53,8 @@ if exist test2-hw.fsx (set sourceshw=%sourceshw% test2-hw.fsx)
set PERMUTATIONS_LIST=FSI_FILE FSI_STDIN FSI_STDIN_OPT FSI_STDIN_GUI FSC_BASIC %FSC_BASIC_64% FSC_HW FSC_O3 GENERATED_SIGNATURE EMPTY_SIGNATURE EMPTY_SIGNATURE_OPT FSC_OPT_MINUS_DEBUG FSC_OPT_PLUS_DEBUG FRENCH SPANISH AS_DLL WRAPPER_NAMESPACE WRAPPER_NAMESPACE_OPT
if "%REDUCED_RUNTIME%"=="1" (
echo REDUCED_RUNTIME set
if "%SKIP_EXPENSIVE_TESTS%"=="1" (
echo SKIP_EXPENSIVE_TESTS set
if not defined PERMUTATIONS (
powershell.exe %PSH_FLAGS% -command "&{& '%~d0%~p0\PickPermutations.ps1' '%cd%' '%FSC%' '%PERMUTATIONS_LIST%'}" > _perm.txt
......
......@@ -648,7 +648,6 @@ type UsingMSBuild() =
//ColorizerTest start
[<Test>]
[<Category("PerfCheck")>]
member public this.``Regression.Bug2986``() =
let code =
[
......
......@@ -1941,7 +1941,6 @@ let x = new MyClass2(0)
[]
[<Test>]
[<Category("PerfCheck")>]
member public this.``Project.FsFileWithBuildAction``() =
AssertAutoCompleteContainsNoCoffeeBreak
["let i = 4"
......@@ -2337,7 +2336,7 @@ let x = new MyClass2(0)
[<Test>]
/// This is the case where at (*TYPING*) we first type 1...N-1 characters of the target custom operation and then invoke the completion list, and we check that the completion list contains the custom operation
[<Category("QueryExpressions")>]
[<Category("TakesMoreThanFifteenSeconds")>]
[<Category("Expensive")>]
member this.``QueryExpression.CtrlSpaceSystematic1``() =
let rec strictPrefixes (s:string) = seq { if s.Length > 1 then let s = s.[0..s.Length-2] in yield s; yield! strictPrefixes s}
for customOperation in ["select";"skip";"contains";"groupJoin"] do
......@@ -2420,7 +2419,7 @@ let x = new MyClass2(0)
[<Test>]
[<Category("QueryExpressions")>]
[<Category("TakesMoreThanFifteenSeconds")>]
[<Category("Expensive")>]
member this.``QueryExpressions.QueryAndSequenceExpressionWithForYieldLoopSystematic``() =
let prefix = """
......@@ -2482,7 +2481,7 @@ let aaaaaa = [| "1" |]
[<Test>]
[<Category("QueryExpressions")>]
[<Category("TakesMoreThanFifteenSeconds")>]
[<Category("Expensive")>]
/// Incrementally enter a seq{ .. while ...} loop and check for availability of intellisense etc.
member this.``SequenceExpressions.SequenceExprWithWhileLoopSystematic``() =
......@@ -2523,7 +2522,7 @@ let aaaaaa = 0
[<Test>]
[<Category("QueryExpressions")>]
[<Category("TakesMoreThanFifteenSeconds")>]
[<Category("Expensive")>]
/// Incrementally enter query with a 'join' and check for availability of quick info, auto completion and dot completion
member this.``QueryAndOtherExpressions.WordByWordSystematicJoinQueryOnSingleLine``() =
......@@ -2582,7 +2581,7 @@ let aaaaaa = 0
[<Test>]
/// This is a sanity check that the multiple-line case is much the same as the single-line cae
[<Category("QueryExpressions")>]
[<Category("TakesMoreThanFifteenSeconds")>]
[<Category("Expensive")>]
member this.``QueryAndOtherExpressions.WordByWordSystematicJoinQueryOnMultipleLine``() =
let prefix = """
......@@ -3656,7 +3655,6 @@ let x = query { for bbbb in abbbbc(*D0*) do
[ ] // should not contain
[<Test>]
[<Category("PerfCheck")>]
member public this.``Expressions.Computation``() =
AssertAutoCompleteContains
[
......@@ -4179,7 +4177,6 @@ let x = query { for bbbb in abbbbc(*D0*) do
// FEATURE: Saving file N does not cause files 1 to N-1 to re-typecheck (but does cause files N to <end> to
[<Test>]
[<Category("PerfCheck")>]
member public this.``Performance.Bug5774``() =
use _guard = this.UsingNewVS()
let solution = this.CreateSolution()
......@@ -4290,7 +4287,6 @@ let x = query { for bbbb in abbbbc(*D0*) do
/// FEATURE: The filename on disk and the filename in the project can differ in case.
[<Test>]
[<Category("PerfCheck")>]
member this.``Filenames.MayBeDifferentlyCased``() =
use _guard = this.UsingNewVS()
let solution = this.CreateSolution()
......@@ -4312,7 +4308,6 @@ let x = query { for bbbb in abbbbc(*D0*) do
/// In this bug, a bogus flag caused the rest of flag parsing to be ignored.
[<Test>]
[<Category("PerfCheck")>]
member public this.``FlagsAndSettings.Bug1969``() =
use _guard = this.UsingNewVS()
let solution = this.CreateSolution()
......@@ -6557,7 +6552,7 @@ let rec f l =
// Regression test for 1067 -- Completion lists don't work after generic arguments - for generic functions and for static members of generic types
[<Test>]
member this.``Regression1067.InstanceOfGeniricType``() =
member this.``Regression1067.InstanceOfGenericType``() =
this.VerifyDotCompListContainAllAtStartOfMarker(
fileContents = """
type GT<'a> =
......
......@@ -294,7 +294,7 @@ b.Do(1, 1)
Assert.AreEqual(1, List.length errors)
assertContains errors "A unique overload for method 'Do' could not be determined based on type information prior to this program point. A type annotation may be needed. Candidates: member A.Do : a:int * b:'T -> unit, member A.Do : a:int * b:int -> unit"
[<Test>]
[<Test; Category("Expensive")>]
member public this.``NoErrorInErrList``() =
use _guard = this.UsingNewVS()
let fileContents1 = """
......@@ -328,7 +328,7 @@ b.Do(1, 1)
TakeCoffeeBreak(this.VS)
this.VerifyCountAtSpecifiedFile(project,0)
[<Test>]
[<Test; Category("Expensive")>]
member public this.``NoLevel4Warning``() =
use _guard = this.UsingNewVS()
let fileContents = """
......@@ -557,7 +557,6 @@ but here has type
// In this bug, particular warns were still present after nowarn
[<Test>]
[<Category("PerfCheck")>]
member public this.``NoWarn.Bug5424``() =
let fileContent = """
#nowarn "67" // this type test or downcast will always hold
......
......@@ -55,7 +55,6 @@ type UsingMSBuild() =
[<Test>]
[<Category("error_recovery")>]
[<Category("PerfCheck")>]
member public this.``ErrorRecovery.Bug4881_1``() =
let code =
["let s = \"\""
......
......@@ -46,7 +46,6 @@ type UsingMSBuild() =
()
[<Test>]
[<Category("PerfCheck")>]
member public this.``NoKeyword.Negative`` () =
let file =
[ "let s = \"System.Con$sole\""
......
......@@ -284,7 +284,6 @@ EdmxFile
/// FEATURE: (Project System only) Adding a file outside the project directory creates a link
[<Test>]
[<Category("PerfCheck")>]
member public this.``ProjectSystem.FilesOutsideProjectDirectoryBecomeLinkedFiles``() =
use _guard = this.UsingNewVS()
if OutOfConeFilesAreAddedAsLinks(this.VS) then
......@@ -300,7 +299,6 @@ EdmxFile
AssertMatchesRegex '<' @"<ItemGroup>\s*<Compile Include=""..\\link.fs"">\s*<Link>link.fs</Link>" projFileText
[<Test>]
[<Category("PerfCheck")>]
member public this.``Lexer.CommentsLexing.Bug1548``() =
let scan = new FSharpScanner(fun source ->
let filename = "test.fs"
......@@ -399,7 +397,6 @@ EdmxFile
// Make sure that possible overloads (and other related errors) are shown in the error list
[<Test>]
[<Category("PerfCheck")>]
member public this.``ErrorLogging.Bug5144``() =
use _guard = this.UsingNewVS()
let solution = this.CreateSolution()
......@@ -422,8 +419,7 @@ EdmxFile
Helper.AssertListContainsInOrder(GetOutputWindowPaneLines(this.VS),
["error FS0041: A unique overload for method 'Plot' could not be determined based on type information prior to this program point. A type annotation may be needed. Candidates: member N.M.LineChart.Plot : f:(float -> float) * xmin:float * xmax:float -> unit, member N.M.LineChart.Plot : f:System.Func<double,double> * xmin:float * xmax:float -> unit"])
[<Category("TakesMoreThanFifteenSeconds")>]
[<Test>]
[<Test; Category("Expensive")>]
member public this.``ExhaustivelyScrutinize.ThisOnceAsserted``() =
Helper.ExhaustivelyScrutinize(
this.TestRunner,
......@@ -433,8 +429,7 @@ EdmxFile
""" else [],"" """ ]
)
[<Category("TakesMoreThanFifteenSeconds")>]
[<Test>]
[<Test; Category("Expensive")>]
member public this.``ExhaustivelyScrutinize.ThisOnceAssertedToo``() =
Helper.ExhaustivelyScrutinize(
this.TestRunner,
......@@ -443,8 +438,8 @@ EdmxFile
" interface System.IComparable with "
" member __.CompareTo(v:obj) = 1" ]
)
[<Category("TakesMoreThanFifteenSeconds")>]
[<Test>]
[<Test; Category("Expensive")>]
member public this.``ExhaustivelyScrutinize.ThisOnceAssertedThree``() =
Helper.ExhaustivelyScrutinize(
this.TestRunner,
......@@ -466,7 +461,7 @@ EdmxFile
member public this.``ExhaustivelyScrutinize.ThisOnceAssertedFive``() =
Helper.ExhaustivelyScrutinize(this.TestRunner, [ """CSV.File<@"File1.txt">.[0].""" ]) // <@ is one token, wanted < @"...
[<Category("TakesMoreThanFifteenSeconds")>]
[<Category("Expensive")>]
[<Test>]
member public this.``ExhaustivelyScrutinize.Bug2277``() =
Helper.ExhaustivelyScrutinize(
......@@ -481,7 +476,7 @@ EdmxFile
"let pp= plot(Area(xs,ys))" ]
)
[<Category("TakesMoreThanFifteenSeconds")>]
[<Category("Expensive")>]
[<Test>]
member public this.``ExhaustivelyScrutinize.Bug2283``() =
Helper.ExhaustivelyScrutinize(
......
......@@ -909,7 +909,6 @@ type UsingMSBuild() =
/// let #x = () in $x
[<Test>]
[<Category("PerfCheck")>]
member public this.``GotoDefinition.InsideClass.Bug3176`` () =
this.GotoDefinitionTestWithSimpleFile "id77 (*loc-77*)" (Some("val id77 (*loc-77*) : int", "id77"))
......@@ -1358,7 +1357,6 @@ type UsingMSBuild() =
Assert.Fail("Expected result, but didn't receive one!")
[<Test>]
[<Category("PerfCheck")>]
member public this.``GetCompleteIdTest.TrivialBefore`` () =
for tolerate in [true;false] do
this.GetCompleteIdTest tolerate "let $ThisIsAnIdentifier = ()" (Some "ThisIsAnIdentifier")
......
......@@ -42,7 +42,7 @@ type IncrementalBuild() =
// It verifies that incremental builder can handle changes to timestamps that happen _before_ the
// stamp function exists. This ensures there's not a race in the data gathered for tracking file
// timestamps in parsing.
[<Test>]
[<Test; Category("Expensive")>]
member public rb.StampUpdate() =
let path = Path.GetTempFileName()
......
......@@ -159,7 +159,6 @@ type UsingMSBuild() =
"SomeModule", "(*5e*)" (* entire module *) ]
[<Test>]
[<Category("PerfCheck")>]
member public this.``Record1``() =
this.TestNavigationBar NavigationFile1 "SomeModule.Rec" ["RFirst"; "RSecond"]
......
......@@ -140,7 +140,6 @@ type UsingMSBuild() =
failwith "Expected parameter info to contain AsyncRead"
[<Test>]
[<Category("PerfCheck")>]
member public this.``Regression.MethodInfo.WithColon.Bug4518_1``() =
let fileContent = """
type T() =
......@@ -2020,7 +2019,7 @@ We really need to rewrite some code paths here to use the real parse tree rather
(* Project ref method for multi-parameterinfo tests ----------------------------------------------- *)
[<Test>]
[<Test; Category("Expensive")>]
member public this.``Multi.ReferenceToProjectLibrary``() =
use _guard = this.UsingNewVS()
let solution = this.CreateSolution()
......
......@@ -1288,13 +1288,11 @@ let f (tp:ITypeProvider(*$$$*)) = tp.Invalidate
]
[<Test>]
[<Category("TakesMoreThanFifteenSeconds")>]
member public this.``LongPaths``() =
let text,cases = this.GetLongPathsTestCases()
this.QuickInfoResolutionTest text cases
[<Test>]
[<Category("TakesMoreThanFifteenSeconds")>]
member public this.``Global.LongPaths``() =
let text,cases = this.GetLongPathsTestCases()
let replace (s:string) = s.Replace("System", "global.System")
......@@ -1611,7 +1609,6 @@ let f (tp:ITypeProvider(*$$$*)) = tp.Invalidate
// In this bug, relative paths with .. in them weren't working.
[<Test>]
[<Category("PerfCheck")>]
member public this.``BugInRelativePaths``() =
use _guard = this.UsingNewVS()
let solution = this.CreateSolution()
......@@ -1640,7 +1637,6 @@ let f (tp:ITypeProvider(*$$$*)) = tp.Invalidate
// QuickInfo over a type that references types in an unreferenced assembly works.
[<Test>]
[<Category("PerfCheck")>]
member public this.``MissingDependencyReferences.QuickInfo.Bug5409``() =
let code =
["#light"
......@@ -3153,7 +3149,7 @@ query."
("(*Marker4*)", "Gets and sets X")]
this.VerifyUsingFsTestLib fileContent queries false
[<Test>]
[<Test; Category("Expensive")>]
member public this.``Automation.EnumDUInterfacefromFSBrowse``() =
let fileContent ="""module Test
......@@ -3200,7 +3196,7 @@ query."
]
this.VerifyUsingFsTestLib fileContent queries true
[<Test>]
[<Test; Category("Expensive")>]
member public this.``Automation.RecordAndInterfaceFromFSProj``() =
let fileContent ="""module Test
......@@ -3355,7 +3351,7 @@ query."
]
this.VerifyUsingFsTestLib fileContent queries false
[<Test>]
[<Test; Category("Expensive")>]
member public this.``Automation.TupleRecordfromFSBrowse``() =
let fileContent ="""module Test
......@@ -3392,7 +3388,7 @@ query."
]
this.VerifyUsingFsTestLib fileContent queries true
[<Test>]
[<Test; Category("Expensive")>]
member public this.``Automation.UnionAndStructFromFSProj``() =
let fileContent ="""module Test
......
......@@ -1304,7 +1304,7 @@ type UsingMSBuild() as this =
// Compile a script which #loads a source file. The build can't succeed without the loaded file.
[<Test>]
[<Test; Category("Expensive")>]
[<Category("fsx closure")>]
[<Category("fsx compile")>]
member public this.``Fsx.CompileFsx_2``() =
......@@ -1327,7 +1327,7 @@ type UsingMSBuild() as this =
Assert.IsTrue(build.BuildSucceeded, "Expected build to succeed")
// Compile a script which #loads a source file. The build can't succeed without
[<Test>]
[<Test; Category("Expensive")>]
[<Category("fsx closure")>]
[<Category("fsx compile")>]
member public this.``Fsx.CompileFsx_3``() =
......@@ -1537,8 +1537,7 @@ type UsingMSBuild() as this =
/// There was a problem in which synthetic tokens like #load were causing asserts
[<Test>]
[<Category("PerfCheck")>]
[<Test;; Category("Expensive")>]
member public this.``Fsx.SyntheticTokens``() =
Helper.ExhaustivelyScrutinize(
this.TestRunner,
......@@ -1704,12 +1703,10 @@ type UsingMSBuild() as this =
Assert.IsTrue(countInvaldiationHandlersAdded() - countInvaldiationHandlersRemoved() = 0, "Check6b2, at end, all invalidation handlers removed after explicit cleraring")
checkConfigsDisposed()
[<Test>]
[<Category("TypeProvider")>]
[<Test;Category("TypeProvider"; Category("Expensive"))>]
member public this.``TypeProvider.Disposal.SmokeTest1``() = this.TypeProviderDisposalSmokeTest(true)
[<Test>]
[<Category("TypeProvider")>]
[<Test;Category("TypeProvider")>]
member public this.``TypeProvider.Disposal.SmokeTest2``() = this.TypeProviderDisposalSmokeTest(false)
......
......@@ -535,7 +535,6 @@ type X() =
/// When a .fs file is opened with no project context we do show squiggles
/// for missing types etc.
[<Test>]
[<Category("PerfCheck")>]
member public this.``OrphanFs.MissingTypesShouldNotShowErrors``() =
let fileContent = """open Unknown(*Mark*)"""
this.VerifySquiggleContainedAtStartOfMarker(fileContent,"(*Mark*)",(Microsoft.VisualStudio.FSharp.LanguageService.Severity.Error, "Unknown"))
......@@ -550,7 +549,6 @@ type X() =
/// FEATURE: If a .fs file has a BuildAction other than "Compile", it behaves like a
/// single-file-project with regards to intellisense.
[<Test>]
[<Category("PerfCheck")>]
member public this.``Project.FsFileWithBuildActionOtherThanCompileBehavesLikeSingleFileProject``() =
use _guard = this.UsingNewVS()
let solution = this.CreateSolution()
......@@ -571,7 +569,6 @@ type X() =
/// FEATURE: Errors in the code are underlined with red squiggles and a clickable description of the error appears in the Error List.
[<Test>]
[<Category("PerfCheck")>]
member public this.``Basic.Case1``() =
let fileContent = """
let x = 3
......@@ -580,7 +577,6 @@ type X() =
this.VerifySquiggleContainedAtStartOfMarker(fileContent,"(*Mark*)",(Microsoft.VisualStudio.FSharp.LanguageService.Severity.Error, "This value is not a function and cannot be applied"))
[<Test>]
[<Category("PerfCheck")>]
member public this.``Basic.Case2``() =
let fileContent = """
let x(*Mark*) = 3
......
......@@ -162,7 +162,7 @@ type UsingMSBuild() =
AssertNoErrorsOrWarnings(project2)
// FEATURE: When a referenced assembly's timestamp changes the reference is reread.
[<Test>]
[<Test; Category("Expensive")>]
member public this.``Timestamps.ReferenceAssemblyChangeAbsolute``() =
use _guard = this.UsingNewVS()
let solution = this.CreateSolution()
......@@ -208,7 +208,7 @@ type UsingMSBuild() =
printfn "Completions=%A\n" completions
// In this bug, relative paths to referenced assemblies weren't seen.
[<Test>]
[<Test; Category("Expensive")>]
member public this.``Timestamps.ReferenceAssemblyChangeRelative``() =
use _guard = this.UsingNewVS()
let solution = this.CreateSolution()
......@@ -264,7 +264,7 @@ type UsingMSBuild() =
// FEATURE: When a referenced project's assembly timestamp changes the reference is reread.
[<Test>]
[<Category("TakesMoreThanFifteenSeconds")>]
[<Category("Expensive")>]
member public this.``Timestamps.ProjectReferenceAssemblyChange``() =
use _guard = this.UsingNewVS()
let solution = this.CreateSolution()
......
......@@ -470,7 +470,7 @@ type References() =
let exe = Path.Combine(project.ProjectFolder, "bin\\Debug\\Test.exe")
k exe))
[<Test>]
[<Test; Category("Expensive")>]
member public this.``ReferenceResolution.Bug4423.NonFxAssembly.BrowseTab.RelativeHintPath.InsideProjectDir``() =
// Let's create a run-of-the-mill project just to have a spare assembly around
this.CreateDummyTestProjectBuildItAndDo(fun exe ->
......
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<!-- Configurations that affect the Test Framework -->
<RunConfiguration>
<MaxCpuCount>1</MaxCpuCount>
</RunConfiguration>
</RunSettings>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册