2011-10-12 88 views
1

如何組織Symfony2項目中的燈具。有沒有可以尊重的標準,以便在使用doctrine:fixtures:load --env=environment命令時,只使用與environment環境相關的固定裝置?這可能是有用的,因爲用於生產的夾具很可能不同於用於測試的夾具。賽程組織

+0

爲什麼你想運行在生產燈具?他們用於測試,所以只有測試環境。 – Inoryy

+1

@Inori:不,它們不僅用於測試。請參閱[本頁]的第一段(http://symfony.com/doc/2.0/bundles/DoctrineFixturesBundle/index.html)爲什麼 – greg0ire

回答

1

當前的燈具束不處理這個。 如果要加載只有特定的燈具,則必須使用--fixtures重複選項指定它們:

./app/console doctrine:fixtures:load --fixtures=/path/to/fixtures1 --fixtures=/path/to/fixtures2 

不管怎樣,在你的測試,我勸你還是熱切地加載夾具,每個測試之前正在重置您的數據庫。

+0

我不同意你最後的評論,我明白爲什麼它會更方便,但測試應該是快速。另一個解決方案是使用事務和回滾添加每個測試的結束,但我不知道這是否可能。 +1,但你的問題的其餘部分。 – greg0ire

+1

你是對的速度。我通常使用PHPUnit標籤分開單元和功能測試,所以我仍然可以非常快地運行我的單元測試。 – Herzult

+0

我想現在沒有更好的解決方案了...... – greg0ire

7

讓您的夾具實現ContainerAwareInterface及其load方法中,你可以得到環境:

$this->container->get('kernel')->getEnvironment();