func (c *C) Fatalf(format string, args ...interface{}) {
	c.logCaller(1)
	c.logString(fmt.Sprint("Error: ", fmt.Sprintf(format, args...)))
	c.logNewLine()
	c.FailNow()
}
Fatlaf logs an error into the test error output, marks the test as failed, and
stops the test execution. The provided arguments are assembled together into
a string with fmt.Sprintf.
package check
import (
	"fmt"
	"strings"
	"time"
)
func (c *C) TestName() string {
	return c.testName
}
func (c *C) Failed() bool {
	return c.status() == failedSt
}
func (c *C) Fail() {
	c.setStatus(failedSt)
}
func (c *C) FailNow() {
	c.Fail()
	c.stopNow()
}
func (c *C) Succeed() {
	c.setStatus(succeededSt)
}
func (c *C) SucceedNow() {
	c.Succeed()
	c.stopNow()
}
func (c *C) ExpectFailure(reason string) {
	if reason == "" {
		panic("Missing reason why the test is expected to fail")
	}
	c.mustFail = true
	c.reason = reason
}
func (c *C) Skip(reason string) {
	if reason == "" {
		panic("Missing reason why the test is being skipped")
	}
	c.reason = reason
	c.setStatus(skippedSt)
	c.stopNow()
}
func (c *C) GetTestLog() string {
	return c.logb.String()
}
func (c *C) Log(args ...interface{}) {
	c.log(args...)
}
func (c *C) Logf(format string, args ...interface{}) {
	c.logf(format, args...)
}
func (c *C) Output(calldepth int, s string) error {
	d := time.Now().Sub(c.startTime)
	msec := d / time.Millisecond
	sec := d / time.Second
	min := d / time.Minute
	c.Logf("[LOG] %d:%02d.%03d %s", min, sec%60, msec%1000, s)
	return nil
}
func (c *C) Error(args ...interface{}) {
	c.logCaller(1)
	c.logString(fmt.Sprint("Error: ", fmt.Sprint(args...)))
	c.logNewLine()
	c.Fail()
}
func (c *C) Errorf(format string, args ...interface{}) {
	c.logCaller(1)
	c.logString(fmt.Sprintf("Error: "+format, args...))
	c.logNewLine()
	c.Fail()
}
func (c *C) Fatal(args ...interface{}) {
	c.logCaller(1)
	c.logString(fmt.Sprint("Error: ", fmt.Sprint(args...)))
	c.logNewLine()
	c.FailNow()
}