【问题标题】:Caused by PDOException: SQLSTATE[42000] - php unit test in Laravel由 PDOException 引起:SQLSTATE[42000] - Laravel 中的 php 单元测试
【发布时间】:2015-03-25 07:59:03
【问题描述】:

我是 laravel 和 php 单元测试的新手。 我正在尝试在 laravel 中运行一个非常基本的测试,并在通过命令行运行 phpunit 时收到以下错误:

由 PDOException 引起:SQLSTATE[42000]:语法错误或访问 违规:1064 您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本以获得正确的语法 在impressionsclicks int not null、clicks_change 之后使用' 附近 float(4, 2) not null' 在第 1 行

class ExampleTest extends TestCase {

    /**
     * A basic functional test example.
     *
     * @return void
     */
    public function testStats()
    {
        $result = true;
        $this->assertEquals(true, $result);
    }
}

【问题讨论】:

  • 您要进行断言的查询在哪里?
  • 没有,我需要测试api,但我假设assertEquals首先成功。我想我错过了一些非常基本的东西。
  • 我在testStats() 内所做的任何事情都会出现同样的错误。 @AbhikChakraborty
  • 该错误表明它是一个 mysql 错误,也许看看您是否正在调用一个解决问题的类构造函数。
  • 我猜这个错误是由TestCase::setUp()引起的。也许它正在制作一个应用程序,并且某处正在执行查询。您是否正确设置了应用程序/数据库配置?

标签: php mysql unit-testing laravel laravel-4


【解决方案1】:

请检查您编写的查询。 或者从您的 phpunit.xml 中注释掉与数据库相关的部分以在没有数据库交互的情况下运行测试

    <!--<env name="DB_CONNECTION" value="mysql"/>-->
    <!--<env name="DB_DATABASE" value="event_test_db"/>-->

【讨论】:

    猜你喜欢
    • 2018-03-11
    • 1970-01-01
    • 2015-09-20
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多