Кажется, что не нашел ответа на этот вопрос.Travis-CI GoLang Примеры ошибки теста
Я пытаюсь использовать Travis-CI для создания/запуска тестов для моего пакета GoLang; но Travis продолжает работать с ошибками в примерах GoLang, которые выполняются как часть тестов.
Например, вот один пример:
func Example() {
now := time.Date(2017, time.February, 1, 7, 51, 0, 0, time.Local)
// instantiate a new Podcast
p := podcast.New(
"Sample Podcasts",
"http://example.com/",
"An example Podcast",
&now, &now,
)
// add some channel properties
p.ISubtitle = "A simple Podcast"
p.AddImage("http://example.com/podcast.jpg")
p.AddAuthor("Jane Doe", "[email protected]")
for i := int64(0); i < 2; i++ {
n := strconv.FormatInt(i, 10)
// create an Item
item := podcast.Item{
Title: "Episode " + n,
Description: "Description for Episode " + n,
ISubtitle: "A simple episode " + n,
PubDate: &now,
}
// add a Download to the Item
item.AddEnclosure("http://example.com/"+n+".mp3", podcast.MP3, 55*(i+1))
// add the Item and check for validation errors
if _, err := p.AddItem(item); err != nil {
os.Stderr.WriteString("item validation error: " + err.Error())
}
}
// Podcast.Encode writes to an io.Writer
if err := p.Encode(os.Stdout); err != nil {
os.Stderr.WriteString("error writing to stdout: " + err.Error())
}
// Output:
// <?xml version="1.0" encoding="UTF-8"?>
// <rss version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
// <channel>
// <title>Sample Podcasts</title>
// <link>http://example.com/</link>
// <description>An example Podcast</description>
// <generator>go podcast v1.0.0 (github.com/eduncan911/podcast)</generator>
// <language>en-us</language>
// <lastBuildDate>Wed, 01 Feb 2017 07:51:00 -0500</lastBuildDate>
// <managingEditor>[email protected] (Jane Doe)</managingEditor>
// <pubDate>Wed, 01 Feb 2017 07:51:00 -0500</pubDate>
// <image>
// <url>http://example.com/podcast.jpg</url>
// </image>
// <itunes:author>[email protected] (Jane Doe)</itunes:author>
// <itunes:subtitle>A simple Podcast</itunes:subtitle>
// <itunes:image href="http://example.com/podcast.jpg"></itunes:image>
// <item>
// <guid>http://example.com/0.mp3</guid>
// <title>Episode 0</title>
// <link>http://example.com/0.mp3</link>
// <description>Description for Episode 0</description>
// <pubDate>Wed, 01 Feb 2017 07:51:00 -0500</pubDate>
// <enclosure url="http://example.com/0.mp3" length="55" type="audio/mpeg"></enclosure>
// <itunes:author>[email protected] (Jane Doe)</itunes:author>
// <itunes:subtitle>A simple episode 0</itunes:subtitle>
// <itunes:image href="http://example.com/podcast.jpg"></itunes:image>
// <itunes:duration>55</itunes:duration>
// </item>
// <item>
// <guid>http://example.com/1.mp3</guid>
// <title>Episode 1</title>
// <link>http://example.com/1.mp3</link>
// <description>Description for Episode 1</description>
// <pubDate>Wed, 01 Feb 2017 07:51:00 -0500</pubDate>
// <enclosure url="http://example.com/1.mp3" length="110" type="audio/mpeg"></enclosure>
// <itunes:author>[email protected] (Jane Doe)</itunes:author>
// <itunes:subtitle>A simple episode 1</itunes:subtitle>
// <itunes:image href="http://example.com/podcast.jpg"></itunes:image>
// <itunes:duration>110</itunes:duration>
// </item>
// </channel>
// </rss>
}
Вот ссылка на конкретный Travis сборки, который не go test
, даже если он работает на месте:
https://travis-ci.org/eduncan911/podcast/builds/198093154
$ go test -covermode count -coverprofile cover.out
--- FAIL: Example (0.00s)
got:
<?xml version="1.0" encoding="UTF-8"?>
...(omitted)
want:
<?xml version="1.0" encoding="UTF-8"?>
...(omitted)
go test
команда обычно работает локально на macOS, в Windows 10 VM и в экземплярах EC2 Ubuntu.
Это только Трэвис, который не может запустить go test
, с примерами.
Если я пропустить примеры, то тесты проходят с:
$ go test -run Test -covermode count -coverprofile cover.out
Но что поражения цели:
- тестирующих Примеры
- Капли отчет о покрытии кода с 97% до 43%
(да, я использую примеры как часть покрытия кода - часть блога p ost Я пытаюсь написать и использовать Travis, чтобы показать это. но, э-э, уп! Travis ошибки!)
я подозреваю, Трэвис делает что-то в стиле фанк с stderr
и/или stdout
, перенаправив вывод на консоль/журнал, который может предотвратить go test
видеть результаты.
OMG, я не могу, что это было! это то, что я получаю для кодирования среди ночи с детьми. благодаря! – eduncan911