Score:1

ฉันจะโหลดการโยกย้ายใน KernelTest ได้อย่างไร

ธง in

ฉันกำลังพยายามทดสอบการย้ายข้อมูลด้วย KernelTest แต่ฉันพบปัญหาเมื่อฉันพยายามโหลดปลั๊กอินการย้ายข้อมูล

การโยกย้ายของฉันกำหนดไว้ใน my_module/migrations/my_migration.yml. ใน KernelTest ของฉัน ฉันได้ระบุไว้แล้ว my_module และ โยกย้าย ใน $โมดูล คุณสมบัติคงที่

ในรูปแบบที่กำหนดเอง ฉันใช้สิ่งต่อไปนี้เพื่อโหลดปลั๊กอินการโยกย้าย:

/** @var \Drupal\migrate\Plugin\MigrationPluginManagerInterface $plugin_manager */
$plugin_manager = \Drupal::service('plugin.manager.migration');
$migration = $plugin_manager
  ->createInstance('MY_MIGRATION');
// ต่อไป สร้าง MigrateExecutable ฯลฯ...

อย่างไรก็ตาม เมื่อฉันใช้รหัสเดียวกันนี้ใน KernelTest $การย้ายถิ่นฐาน ตลอดเวลา เท็จ. ฉันรู้สึกว่าเป็นเพราะการย้ายข้อมูลของฉันไม่ถูกโหลด (?) เมื่อฉันเปิดใช้งานโมดูลของฉันในการทดสอบ แต่ฉันไม่แน่ใจว่าจะทำอย่างไรกับมัน ฉันพลาดอะไรไปที่นี่? ฉันจะโหลดการย้ายข้อมูลในการทดสอบได้อย่างไร

sonfd avatar
in flag
ฉันต้องมีบางอย่างแปลกๆ เกิดขึ้นในชั้นเรียนทดสอบของฉัน ซึ่งทำให้สิ่งนั้นล้มเหลว
Score:0
ธง in

โมดูลการโยกย้ายจัดเตรียมคลาสทดสอบเคอร์เนลพื้นฐาน Drupal\Tests\migrate\Kernel\MigrateTestBaseซึ่งมีก getMigration() วิธีการอบใน.

ตัวอย่างเช่น ใช้งานได้และการทดสอบผ่าน:

<?php

เนมสเปซ Drupal\my_module\tests\Kernel;

ใช้ Drupal\migrate\Plugin\MigrationInterface
ใช้ Drupal\Tests\migrate\Kernel\MigrateTestBase

คลาส MyMigrationTest ขยาย MigrateTestBase {

  $โมดูลคงที่ป้องกัน = [
    'my_module',
    'โยกย้าย',
    // ฯลฯ...
  ];
  
  ฟังก์ชั่นสาธารณะ testMigration (): เป็นโมฆะ {
    $migration = $this->getMigration('MY_MIGRATION');

    $this->assertInstanceOf(MigrationInterface::class, $migration);
  }

}

อย่างไรก็ตาม ไม่จำเป็นต้องขยายเวลา โยกย้าย TestBaseสิ่งนี้ยังใช้งานได้และผ่านการทดสอบ:

<?php

เนมสเปซ Drupal\my_module\tests\Kernel;

ใช้ Drupal\KernelTests\KernelTestBase
ใช้ Drupal\migrate\Plugin\MigrationInterface

คลาส MyMigrationTest ขยาย KernelTestBase {

  $โมดูลคงที่ป้องกัน = [
    'my_module',
    'โยกย้าย',
    // ฯลฯ...
  ];
  
  ฟังก์ชั่นสาธารณะ testMigration (): โมฆะ {
    /** @var \Drupal\migrate\Plugin\MigrationPluginManagerInterface 
    $plugin_manager */
    $plugin_manager = \Drupal::service('plugin.manager.migration');
    $migration = $plugin_manager
      ->createInstance('MY_MIGRATION');

    $this->assertInstanceOf(MigrationInterface::class, $migration);
  }

}

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา