Как тестировать функции C # в интерактивном режиме F # Interactive
-
28-09-2019 - |
Вопрос
У меня есть набор статических методов полезности, включая модульные тесты. Но я хотел бы иметь более интерактивный способ использовать тестирование -> фиксирование -> Completing Cycle (REPL), как в Lisp или SmallTalk, где можно сразу же выполнить код в интерактивном режиме. Я пытался использовать F # Interactive для тестирования этих методов непосредственно изнутри открытого проекта C # в VS 2010, но я не получил его на работу.
Я знаю, что я должен загрузить сборку (#r
Директива), откройте пространство имен, а затем можно позвонить в методы (и осмотреть результат). Но как мне это сделать в «F # Interactive» в Visual Studio 2010? Я знаю, что можно с окном «Немедленное» доступно в режиме отладки, но я хочу сделать это в F # Interactive в «режиме проектирования», когда я пишу код.
Решение
Вам необходимо включить путь к вашему проекту, используя #I
Директива тогда вы можете загрузить вашу сборку и использовать ее. Я написал простое приложение C # Console, попробуйте это и получило это для работы.
using System;
namespace ConsoleApplication1
{
public class Program
{
static void Main(string[] args)
{
PrintMessage();
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
Console.WriteLine();
}
public static void PrintMessage()
{
Console.WriteLine("MESSAGE!");
}
}
}
Тогда в F # Interactive:
> #I "full path to debug directory";;
--> Added 'full path to debug directory' to library include path
> #r "ConsoleApplication1.exe";;
--> Referenced 'full path to debug directory\ConsoleApplication1.exe'
> open ConsoleApplication1;;
> Program.PrintMessage();;
MESSAGE!
val it : unit = ()
Так что это определенно работает, вам просто нужно сначала компилировать ваши проекты. Просто не забудьте сбросить сеанс, чтобы освободить свою сборку заранее.