猿问

用银杏故障测试两个字符串

首先,我想告诉你,我对 Go 非常陌生,而且我来自 Python。话虽如此,我可以继续解决我的问题。我遇到以下问题:


cacciald@cacciald-Lenovo-G470:~/workspace/gopath/src/github.com/lcacciagioni/bosh_web_console/executor$ go test

Running Suite: Executor Suite

=============================

Random Seed: 1409854483

Will run 1 of 1 specs


• Failure [0.005 seconds]

Executor

/home/cacciald/workspace/gopath/src/github.com/lcacciagioni/bosh_web_console/executor/executor_test.go:21

  Should execute a command [It]

  /home/cacciald/workspace/gopath/src/github.com/lcacciagioni/bosh_web_console/executor/executor_test.go:20


  Expected

      <string>: Hello World


  to be equivalent to

      <string>: Hello World


  /home/cacciald/workspace/gopath/src/github.com/lcacciagioni/bosh_web_console/executor/executor_test.go:19

------------------------------


Summarizing 1 Failure:


[Fail] Executor [It] Should execute a command 

/home/cacciald/workspace/gopath/src/github.com/lcacciagioni/bosh_web_console/executor/executor_test.go:19


Ran 1 of 1 Specs in 0.006 seconds

FAIL! -- 0 Passed | 1 Failed | 0 Pending | 0 Skipped --- FAIL: TestExecutor (0.01 seconds)

FAIL

exit status 1

FAIL    github.com/lcacciagioni/bosh_web_console/executor       0.019s

这是代码:


// Package executor will provide a way to execute console commands in our

// Operative System.-

package executor


import (

        "bytes"

        "log"

        "os/exec"

)


func Runner(command, params string) string {

        cmd := exec.Command(command, params)

        var out bytes.Buffer

        cmd.Stdout = &out

        err := cmd.Run()

        if err != nil {

                log.Fatal(err)

        }

        return out.String()

}

这是我的简单测试:


package executor_test


import (

        . "github.com/lcacciagioni/bosh_web_console/executor"


        . "github.com/onsi/ginkgo"

        . "github.com/onsi/gomega"

)


var _ = Describe("Executor", func() {

        var (

                cmd    string

                params string

        )


如果有人能告诉我为什么这不起作用,那就太好了!!!


牛魔王的故事
浏览 167回答 1
1回答

ibeautiful

你忘了\n的echo。这工作正常:&nbsp;var _ = Describe("Executor", func() {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var (&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;cmd&nbsp; &nbsp; string&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;params string&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;It("Should execute a command", func() {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;cmd = "echo"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;params = "Hello World"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Expect(Runner(cmd, params)).To(BeEquivalentTo(params + "\n"))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;})&nbsp; &nbsp; &nbsp;})
随时随地看视频慕课网APP

相关分类

Go
我要回答