gpt4 book ai didi

f# - 我希望Canopy Web测试结果显示在VS 2013测试浏览器中...

转载 作者:行者123 更新时间:2023-12-04 08:08:08 26 4
gpt4 key购买 nike

我试图弄清楚如何获得Canopy的测试结果以在VS测试资源管理器中显示。我可以显示我的测试,它将运行它们,但始终显示通过。似乎Run()函数正在“吃掉”结果,因此VS永远不会看到失败。

我确信Canopy如何很好地解释它进入测试结果的异常之间存在冲突,因为通常您希望Run()成功而不管结果如何,并使用自己的报告来报告结果。

也许我应该重定向输出并在MS测试代码中解释它?

所以这是我现在设置的方式...

Visual Studio Test Runner在该文件中查找其视为测试的内容,这些调用称为进行实际测试的冠层方法。

open canopy
open runner
open System
open Microsoft.VisualStudio.TestTools.UnitTesting

[<TestClass>]
type testrun() =

// Look in the output directory for the web drivers
[<ClassInitialize>]
static member public setup(context : TestContext) =
// Look in the output directory for the web drivers
canopy.configuration.ieDir <- "."
canopy.configuration.chromeDir <- "."

// start an instance of the browser
start ie
()

[<TestMethod>]
member x.LocationNoteTest() =
let myTestModule = new myTestModule()
myTestModule.all()
run()


[<ClassCleanup>]
static member public cleanUpAfterTesting() =
quit()
()

myTestModule看起来像
open canopy
open runner
open System

type myTestModule() =

// some helper methods

member x.basicCreate() =
context "The meat of my tests"

"Test1" &&& fun _ ->
// some canopy test statements like...
url "http://theURL.com/"

"#title" == "The title of my page"

//Does the text of the button match expectations?
"#addLocation" == "LOCATION"

// add a location note
click ".btn-Location"

member x.all() =
x.basicCreate()
// I could add additional tests here or I could decide to call them individually

最佳答案

我现在正在工作。对于每个测试,我将以下内容放在run()之后。

    Assert.IsTrue(canopy.runner.failedCount = 0,results.ToString())

所以现在我的测试看起来像:
    [<TestMethod>]
member x.LocationNoteTest() =
let locationTests = new LocationNote()

// Add the test to the canopy suite
// Note, this just defines the tests to run, the canopy portion
// of the tests do not actually execute until run is called.
locationTests.all()

// Tell canopy to run all the tests in the suites.
run()

Assert.IsTrue(canopy.runner.failedCount = 0,results.ToString())

Canopy和UnitTesting基础结构在它们要处理的内容上有一些重叠。我希望UnitTesting基础架构能够“报告”所有测试和详细信息的摘要,因此我需要找到一种方法来“重置”顶篷部分,这样我就不必跟踪顶篷的最后一个已知状态,然后比较。为此,您的机盖套件只能进行一项测试,但我们希望在UnitTesting级别拥有尽可能多的测试。要对此进行调整,请在[]中执行以下操作。
    runner.suites <- [new suite()]
runner.failedCount <- 0
runner.passedCount <- 0

当用户想要围绕机盖使用不同的单元测试基础结构时,在机盖内有可以调用或配置的内容可能是有意义的。

另外,我希望包含错误信息的输出能够像测试失败时一样正常显示,因此我将string.Builder中的console.out捕获并在[]中将其清除。我通过包含以下[]进行设置,其中common.results是我随后在断言中使用的StringBuilder。
    System.Console.SetOut(new System.IO.StringWriter(common.results))

关于f# - 我希望Canopy Web测试结果显示在VS 2013测试浏览器中...,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24618182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com