小编Era*_*els的帖子

Laravel 8.0 测试中刷新数据库时“没有活动事务”

使用 php 8.0.2 和 Laravel 8.37.0,我正在运行测试,其中每个测试都应该刷新数据库数据,因为每个测试都有冲突的数据(由于唯一的约束)。
将内存数据库与 SQLite 一起使用,这是可行的,但是当我切换到 MySQL (v8.0.23) 时,我收到下一个错误:

1) Tests\Feature\Controllers\AuthControllerTest::testSuccessLogin
PDOException: There is no active transaction
Run Code Online (Sandbox Code Playgroud)

并且此后的测试由于数据已插入且测试后未清除而失败。

我想做的测试是:

<?php

namespace Tests\Feature\Controllers;

use App\Models\User;
use App\Models\User\Company;
use App\Repositories\UserRepository;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;

class AuthControllerTest extends TestCase
{
    use RefreshDatabase;

    protected array $connectionsToTransact = ['mysql'];

    public function testSuccessLogin(): void
    {
        $this->artisan('migrate-data');

        /** @var User $user */
        $user = User::factory()->create([
            'email' => 'test@website.com'
        ]);

        $this->app->bind(UserRepository::class, function() use ($user) {
            return new UserRepository($user, new Company());
        });

        $loginResponse = $this->post('/api/login', [ …
Run Code Online (Sandbox Code Playgroud)

php mysql phpunit laravel

9
推荐指数
2
解决办法
2万
查看次数

EcmaScript 6 的非法构造函数

首先,我想说的是,我真的不知道如何解释我为获得标题中提到的错误所做的事情 ( uncaught TypeError: Illegal constructor)。我正在使用 gulpfile 将我的 Ecmascript 6 编译为纯 Javascript。我的 gulpfile 看起来像这样:

var gulp = require('gulp');
var concat = require('gulp-concat');
var babel = require('gulp-babel');

gulp.task('compile', function () {
    return gulp.src(['resources/assets/js/*.js', 'resources/assets/js/components/*.js'])
        .pipe(babel({
                presets: ['es2015']
        }).on('error', logError))
        .pipe(concat('bundle.js'))
        .pipe(gulp.dest('public/js'));
});

gulp.task('watch', function () {
   gulp.watch('resources/assets/js/**/*', ['compile']);
})

gulp.task('default', ['watch']);

function logError(err) {
    console.log(err);
}
Run Code Online (Sandbox Code Playgroud)

我有一个文件系统,在用 Babel 编译后,所有文件都连接到一个文件 (bundle.js)。

在浏览器控制台(Chrome 或 Firefox)中,错误出现并位于下一行:

var _this = _possibleConstructorReturn(this, (Dropdown.__proto__ || Object.getPrototypeOf(Dropdown)).call(this, element));
Run Code Online (Sandbox Code Playgroud)

控制台中的错误

这是这个的非编译代码:

class Dropdown extends Node {

    constructor(element) {
        super(element); …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 gulp babeljs

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

babeljs ×1

ecmascript-6 ×1

gulp ×1

javascript ×1

laravel ×1

mysql ×1

php ×1

phpunit ×1