func New(dsn string, tableSchemaPath string, fixtureDirPath string) *TestSQL {
	ts := &TestSQL{}
	dsn = replaceDBName(dsn)
	config := &Config{
		DSN:             dsn,
		TableSchemaPath: tableSchemaPath,
		FixtureDirPath:  fixtureDirPath,
	}
	ts.Config = config
	ts.createTestDB()
	db, err := sql.Open(driverName, dsn)
	panicErr(err)
	ts.DB = db
	ts.tables = NewSet()
	ts.createTables()
	return ts
}
New initializes sql.DB, creates test database, and creates all tables.
package testsql
import (
	"database/sql"
	"fmt"
	"io/ioutil"
	"log"
	"regexp"
	"strings"
	"math/rand"
	"path/filepath"
	"time"
	"github.com/go-sql-driver/mysql"
)
const (
	driverName     string = "mysql"
	maxDBRandValue int    = 10000
	dbNameTemplate string = "%s_%d_%d"
)
type Config struct {
	DSN             string
	TableSchemaPath string
	FixtureDirPath  string
}
type TestSQL struct {
	Config *Config
	DB     *sql.DB
	tables *Set
}