使用 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) 首先,我想说的是,我真的不知道如何解释我为获得标题中提到的错误所做的事情 ( 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)