代码之家  ›  专栏  ›  技术社区  ›  Nico

如何用FţInteractive交互测试Cţ函数

  •  8
  • Nico  · 技术社区  · 14 年前

    我有一组静态实用程序方法,包括单元测试。但是我希望有一种更交互式的方式来使用一种测试-GT;固定和编译循环(RePL),如LISP或SimultTalk,其中可以立即在交互模式下执行代码。我试图使用F#Interactive直接从VS 2010中开放的C#项目中测试这些方法,但没有成功。

    我知道我得装上组件( #r 指令),打开命名空间,然后可以调用方法(并检查结果)。但是如何在Visual Studio 2010的F#Interactive中实现呢?我知道在调试模式下使用即时窗口是可能的,但是我想在“设计模式”下使用F#Interactive来编写代码。

    1 回复  |  直到 13 年前
        1
  •  10
  •   Jeff Mercado    14 年前

    您需要使用 #I 指令,则可以加载程序集并使用它。我写了一个简单的C#控制台应用程序,试试这个,让它工作。

    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#交互中:

    > #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 = ()
    

    所以它肯定有效,你只需要先编译你的项目。请记住重新设置会话以提前释放程序集。