You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: DEVGUIDE.md
+72-66Lines changed: 72 additions & 66 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ To get a free F# environment, go to [fsharp.org](http://fsharp.org/use/windows).
10
10
> Contributions made to this repo are subject to terms and conditions of the Apache License, Version 2.0. A copy of the license can be found in the [License.txt](License.txt) file at the root of this distribution.
11
11
> By using this source code in any fashion, you are agreeing to be bound by the terms of the Apache License, Version 2.0. You must not remove this notice, or any other, from this software.
12
12
13
-
**Questions?** If you have questions about the source code, please ask in the issues and discussion forums.
13
+
**Questions?** If you have questions about the source code, please ask in the issues.
14
14
15
15
## 0. A Shortcut to Build and Smoke Test
16
16
@@ -33,10 +33,8 @@ Note that you need the .NET framework 3.5 installed on your machine in order to
33
33
34
34
This uses the proto compiler to build `FSharp.Core.dll`, `FSharp.Compiler.dll`, `fsc.exe`, and `fsi.exe`.
35
35
36
-
```
37
-
msbuild src/fsharp-library-build.proj
38
-
msbuild src/fsharp-compiler-build.proj
39
-
```
36
+
msbuild src/fsharp-library-build.proj
37
+
msbuild src/fsharp-compiler-build.proj
40
38
41
39
You can now use the updated F# compiler in `debug\net40\bin\fsc.exe` and F# Interactive in `debug\net40\bin\fsi.exe` to develop and test basic language and tool features.
42
40
@@ -48,73 +46,81 @@ See [TESTGUIDE.md](TESTGUIDE.md) for full details on how to run tests.
48
46
49
47
Prior to a **Debug** test run, you need to complete **all** of these steps:
## 4. [Optional] Install the Visual F# IDE Tools and Clobber the F# 4.0 SDK on the machine
98
+
99
+
**Note:** Step #3 will install a VSIX extension into Visual Studio 2015 that changes the Visual F# IDE Tools
100
+
components installed into Visual Studio 2015. You can revert this step by disabling or uninstalling the addin.
101
+
102
+
**Note:** Step #4 will clobber the machine-wide installed F# 4.0 SDK on your machine. This replaces the ``fsi.exe``/``fsiAnyCpu.exe`` used
103
+
by Visual F# Interactive and the ``fsc.exe`` used by ``Microsoft.FSharp.targets``. Repairing Visual Studio 2015 is currently the
104
+
only way to revert this step.
105
+
106
+
**Note:** After you complete the install, the FSharp.Core referenced by your projects will not be updated. If you want to make
107
+
a project that references your updated FSharp.Core, you must explicitly change the ``TargetFSharpCoreVersion`` in the .fsproj
108
+
file to ``4.4.0.5099`` (or a corresponding portable version number with suffix ``5099``).
109
+
110
+
For **Debug**:
111
+
112
+
1. Ensure that the VSIX package is uninstalled. In VS, select Tools/Extensions and Updates and if the package `VisualStudio.FSharp.EnableOpenSource` is installed, select Uninstall
113
+
1. Run ``debug\net40\bin\EnableOpenSource.vsix``
114
+
1. Run ``vsintegration\update-vsintegration.cmd debug`` (clobbers the installed F# 4.0 SDK)
115
+
116
+
For **Release**:
117
+
118
+
1. Ensure that the VSIX package is uninstalled. In VS, select Tools/Extensions and Updates and if the package `VisualStudio.FSharp.EnableOpenSource` is installed, select Uninstall
119
+
1. Run ``release\net40\bin\EnableOpenSource.vsix``
120
+
1. Run ``vsintegration\update-vsintegration.cmd release`` (clobbers the installed F# 4.0 SDK)
121
+
122
+
Restart Visual Studio, it should now be running your freshly-built Visual F# IDE Tools with updated F# Interactive.
[](https://gitter.im/Microsoft/visualfsharp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
4
6
5
7
#Visual F# Tools
6
8
@@ -41,3 +43,4 @@ Although the primary focus of this repo is F# for Windows and the Visual Studio
41
43
###Get In Touch
42
44
43
45
Keep up with the Visual F# Team and the development of the Visual F# Tools by following us [@VisualFSharp](https://twitter.com/VisualFSharp) or subscribing to our [team blog](http://blogs.msdn.com/b/fsharpteam/).
Copy file name to clipboardExpand all lines: TESTGUIDE.md
+12-6Lines changed: 12 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,8 +11,8 @@ The test cases for this suite reside under `tests\fsharp`. This suite dates back
11
11
The test cases for this suite reside under `tests\fsharpqa\source`.
12
12
This suite was first created when F# 2.0 was being added to Visual Studio 2010. Tests for this suite are driven by the "RunAll" framework, implemented in Perl. This suite is rather large and has broad and deep coverage of a variety of compiler, runtime, and syntax scenarios.
13
13
14
-
### Compiler and Library Core Unit Test Suite
15
-
The test cases for this suite reside next to the F# core library code, at `src\fsharp\FSharp.Core.Unittests`. This suite is a set of standard NUnit test cases, implemented in F#. This suite focuses on validation of the core F# types and the public surface area of `FSharp.Core.dll`.
14
+
### Compiler and Library Core Unit Test Suites
15
+
The test cases for these suites reside next to the F# core library code, at `src\fsharp\FSharp.Core.Unittests` and `src\fsharp\FSharp.Compiler.Unittests`. These suites are standard NUnit test cases, implemented in F#. The FSharp.Core.Unittests suite focuses on validation of the core F# types and the public surface area of `FSharp.Core.dll`, and the FSharp.Compiler.Unittests suite focuses on validation of compiler internals.
16
16
17
17
### Visual F# Tools IDE Unit Test Suite
18
18
The test cases for this suite reside next to the Visual F# Tools code, at `vsintegration\src\unittests`. This suite is a set of standard NUnit test cases, implemented in F#. This suite exercises a wide range of behaviors in the F# Visual Studio project system and language service.
@@ -38,6 +38,7 @@ The script `tests\RunTests.cmd` has been provided to make execution of the above
38
38
```
39
39
RunTests.cmd <debug|release> fsharp [tags to run] [tags not to run]
40
40
RunTests.cmd <debug|release> fsharpqa [tags to run] [tags not to run]
`RunTests.cmd` sets a handful of environment variables which allow for the tests to work, then puts together and executes the appropriate command line to start the specified test suite.
50
51
51
-
All test execution logs and result files will be dropped into the `tests\TestResults` folder, and have file names matching `FSharp_*.*`, `FSharpQA_*.*`, `CoreUnit_*.*`, `IDEUnit_*.*`, e.g. `FSharpQA_Results.log` or `FSharp_Failures.log`.
52
+
All test execution logs and result files will be dropped into the `tests\TestResults` folder, and have file names matching `FSharp_*.*`, `FSharpQA_*.*`, `CompilerUnit_*.*`, `CoreUnit_*.*`, `IDEUnit_*.*`, e.g. `FSharpQA_Results.log` or `FSharp_Failures.log`.
52
53
53
54
For the FSharp and FSharpQA suites, the list of test areas and their associated "tags" is stored at
54
55
@@ -93,9 +94,14 @@ Test area directories in this suite will contain a number of source code files a
93
94
Test cases will run an optional "pre command," compile some set of source files using some set of flags, optionally run the resulting binary, then optionally run a final "post command."
94
95
If all of these steps complete without issue, the test is considered to have passed.
95
96
96
-
### Core Unit Test Suite
97
+
### FSharp.Compiler and FSharp.Core Unit Test Suites
97
98
98
-
To build the unit test binary, call `msbuild fsharp-library-unittests-build.proj` from the `src` directory. Tests are contained in the binary `FSharp.Core.Unittests.dll`.
99
+
To build these unit test binaries, from the `src` directory call
100
+
101
+
-`msbuild fsharp-compiler-unittests-build.proj`
102
+
- Output binary is `FSharp.Compiler.Unittests.dll`
103
+
-`msbuild fsharp-library-unittests-build.proj`
104
+
- Output binary is `FSharp.Core.Unittests.dll`
99
105
100
106
You can execute and re-run these tests using any standard NUnit approach - via graphical `nunit.exe` or on the command line via `nunit-console.exe`.
101
107
@@ -123,4 +129,4 @@ You can execute and re-run these tests using any standard NUnit approach - via g
123
129
* Making the tests run faster
124
130
* NGen-ing the F# bits (fsc, fsi, FSharp.Core, etc) will result in tests executing much faster. Make sure you run `src\update.cmd` with the `-ngen` flag before running tests.
125
131
* The Fsharp and FsharpQA suites will run test cases in parallel by default. You can comment out the relevant line in `RunTests.cmd` (look for `PARALLEL_ARG`) to disable this.
126
-
* By default, tests from the FSharpQA suite are run using a persistent, hosted version of the compiler. This speeds up test execution, as there is no need for the `fsc.exe` process to spin up repeatedly. To disable this, uncomment the relevant line in `RunTests.cmd` (look for `HOSTED_COMPILER`).
132
+
* By default, tests from the FSharpQA suite are run using a persistent, hosted version of the compiler. This speeds up test execution, as there is no need for the `fsc.exe` process to spin up repeatedly. To disable this, uncomment the relevant line in `RunTests.cmd` (look for `HOSTED_COMPILER`).
ifnotexist%_msbuildexe%echo Error: Could not find MSBuild.exe. Please see http://www.microsoft.com/en-us/download/details.aspx?id=40760. &&goto :failure
0 commit comments