2015-06-09 5 views
3

Я установил FsUnitКак запустить FsUnit тесты на Linux/Mac

» nuget install fsunit 
Attempting to resolve dependency 'NUnit (≥ 2.6.3)'. 
Installing 'NUnit 2.6.3'. 
Successfully installed 'NUnit 2.6.3'. 
Installing 'FsUnit 1.3.0.1'. 
Successfully installed 'FsUnit 1.3.0.1'. 

Я создал простой тест единицы:

module Tests 

open NUnit.Framework 
open FsUnit 

[<Test>] 
let ``simple test``() = 
    1 |> should equal 1 

Здесь я запускаю свой тест:

» fsharpc -r NUnit.2.6.3/lib/nunit.framework.dll -r FsUnit.1.3.0.1/Lib/Net40/FsUnit.NUnit.dll 01_binomial_tests.fs 
F# Compiler for F# 3.1 (Open Source Edition) 
Freely distributed under the Apache 2.0 Open Source License 

/Users/demas/development/book_exericses/fsharp_deep_dive/01_binomial_tests.fs(7,1): warning FS0988: Main module of program is empty: nothing will happen when it is run 

Он был составлен отлично, но я не знаю, как запускать тесты без VS

Update

Я пытался использовать NUnit.Runners:

> nuget install NUnit.Runners 
> fsharpc -r NUnit.2.6.3/lib/nunit.framework.dll -r FsUnit.1.3.0.1/Lib/Net40/FsUnit.NUnit.dll --target:library 01_binomial_tests.fs 
> mono NUnit.Runners.2.6.4/tools/nunit-console.exe 01_binomial_tests.dll 
NUnit-Console version 2.6.4.14350 
Copyright (C) 2002-2012 Charlie Poole. 
Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov. 
Copyright (C) 2000-2002 Philip Craig. 
All Rights Reserved. 

Runtime Environment - 
    OS Version: Unix 14.4.0.0 
    CLR Version: 2.0.50727.1433 (Mono 3.5 (3.10.0 ((detached/92c4884 Thu Nov 13 23:27:38 EST 2014))) 

ProcessModel: Default DomainUsage: Single 
Execution Runtime: mono-3.5 
Could not load file or assembly '01_binomial_tests, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified. 
+0

Что касается вашего обновления: для меня это выглядит так, как будто это просто не может быть зависимым - это может быть очень трудно решить издалека - вероятно, вы должны называть его из каталога '/ bin/debug' (или любого другого) (обычно большинство зависимостей копируются там) – Carsten

+0

Спасибо. Помогает мне. Я скопировал файлы FsUnit и NUnit в папку программы – demas

ответ

4

У вас есть несколько вариантов:

  • Добавить зависимость от NUnit.Runners NuGet пакет, который поставляется с автономным бегун
  • Используйте Xamarin Studio, который, кажется, имеет Unit Tests panel для запуска тестов
  • Использование FAKE который является хорошим F # построить инструмент, который может запустить юнит-тесты

Я лично использую FAKE, потому что это красиво автоматизирует все. Чтобы сделать это, вам нужно положить что-то подобное в вашем FAKE build.fsx скрипта:

Target "Test" (fun _ -> 
    !! "/tests*.dll |> NUnit (fun p -> 
     {p with 
      DisableShadowCopy = true; 
      OutputFile = testDir + "TestResults.xml" }) 
) 

Вам нужно зависимости от FAKE и NUnit.Runners, а затем FAKE должны также найти бегун автоматически (так что вы не должны установить это явно в вашем скрипте сборки).

+0

Спасибо за вашу помощь. Я попытался использовать NUnit.Runners, но получаю сообщение об ошибке. Я обновил свой вопрос. Буду признателен за вашу помощь. – demas

Смежные вопросы