2016-02-13 68 views
3

我已經使用Symfony2完成了我的第一個「真實」網絡應用程序。到目前爲止,沒有單元測試 - 因爲項目增長非常快 - 我需要添加它們以在每次發佈之前檢查錯誤。 (目前我測試手動一切)使用Symfony2 + PHPUnit的問題

當我第一次使用 「PHPUnit的-c應用程序/」 我得到這個棄用的消息:

剩餘棄用通知(37)

的Symfony \分量\ DependencyInjection \定義:: setFactoryMethod(createNamed) 已從版本2.6開始棄用,並將在3.0中刪除。使用 定義:: setFactory()代替:從myNameSpace對象\ XYZBundle 4倍,在myControllerTest :: testMyAction 4X \測試\控制器

的Symfony \分量\ DependencyInjection \定義:: setFactoryService(form.factory) 是因爲版本棄用2.6並將在3.0中刪除。使用 定義:: setFactory()代替:從myNameSpace對象\ XYZBundle 4倍,在myControllerTest :: testMyAction 4X \測試\控制器

在文件中的 「模式」 選項 「/無功/網絡/ myproject的/供應商/ friendsofsymfony/user-bundle/FOS/UserBundle/Resources/config/routing/security.xml「 已從版本2.2開始棄用,並將在3.0中刪除。在使用路由定義的 「路徑」 選項,而不是:從myNameSpace對象\ XYZBundle 3倍於myControllerTest :: testMyAction 3X \測試\控制器

嫩枝功能 「form_enctype」 已經過時了。使用 「form_start」,而不是在 FOSUserBundle:簡介:edit_content.html.twig位於第1行:從myNameSpace對象\ XYZBundle \測試\控制器

1倍的myControllerTest :: testMyAction 1X使用 「Twig_Function_Method」 的一個實例功能 「vich_uploader_asset」自版本1.21開始不再使用。使用 Twig_SimpleFunction替代:從myNameSpace對象\ XYZBundle 1倍的myControllerTest :: testMyAction 1X \測試\控制器

自1.12版本Twig_Function類已被廢棄,將 2.0去除。使用Twig_SimpleFunction代替:1個在myControllerTest :: testMyAction 1X從myNameSpace對象\ XYZBundle \測試\控制器

的服務 「fos_user.resetting.form.handler.default」 文件 「的 「範圍」 屬性的/ var/www/myproject/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/DependencyInjection /../ Resources/config/resetting.xml「 從版本2.8開始已棄用,在3.0中將被刪除:1x myControllerTest :: testMyAction從myNameSpace對象\ XYZBundle \測試\控制器

的Twig_Function_Method類自1.12版本過時, 將在2.0被移除。使用Twig_SimpleFunction代替:1x 1x in myControllerTest :: testMyAction from MyNamespace \ XYZBundle \ Tests \ Controller

Twig函數「form_enctype」已被棄用。在FOSUserBundle中使用「form_start」代替 :Group:new_content.html。第1行的小枝:1x 1x in myControllerTest :: testMyAction from MyNamespace \ XYZBundle \ Tests \ Controller

小枝函數「form_enctype」已棄用。使用在FOSUserBundle 「form_start」,而不是 :組:edit_content.html.twig位於第1行:從myNameSpace對象\ XYZBundle \測試\控制器

1倍 1X在myControllerTest :: testMyAction

嫩枝功能 「form_enctype」 已經過時了。使用在FOSUserBundle 「form_start」,而不是 :註冊:register_content.html.twig位於第1行:從myNameSpace對象\ XYZBundle 1倍 1X在myControllerTest :: testMyAction \測試\控制器

嫩枝功能 「form_enctype」 已經過時了。使用 「form_start」 在FOSUserBundle代替 :ChangePassword:changePassword_content.html.twig在 線1:1個 1X在myControllerTest ::從myNameSpace對象\ XYZBundle testMyAction \測試\控制器

路線的 「_method」 規定「fos_user_security_check 「in file 」/var/www/myproject/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/config/routing/security.xml「 已從版本2.2開始棄用,並將在3.0中刪除。使用 「方法」 屬性,而不是:從myNameSpace對象\ XYZBundle 1倍的myControllerTest :: testMyAction 1X \測試\控制器

嫩枝功能 「form_enctype」 已經過時了。使用 「form_start」 在FOSUserBundle代替 :重置:reset_content.html.twig位於第1行:從myNameSpace對象\ XYZBundle 1倍的myControllerTest :: testMyAction 1X \測試\控制器

「工廠服務」 的服務屬性「 fos_user.resetting.form「 in 」/var/www/myproject/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/DependencyInjection/../Resources/config/resetting.xml「 自版本2.6開始已棄用,且將在3.0中刪除。使用 「工廠」 元素,而是:從myNameSpace對象\ XYZBundle 1倍的myControllerTest :: testMyAction 1X \測試\控制器

的服務 「fos_user.change_password.form.handler.default」 在文件中的 「範圍」 屬性 「/var/www/myproject/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/DependencyInjection/../Resources/config/change_password.xml」 自版本2.8開始不再使用,將在3.0中刪除:1x 1x在myControllerTest :: testMyAction from MyNamespace \ XYZBundle \ Tests \ Controller

服務「fos_user.profile.form」的「工廠方法」屬性在 文件 「/var/www/myproject/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/DependencyInjection/../Resources/config/profile.xml」 已從版本2.6開始棄用,並將在3.0中刪除。使用 「工廠」 元素,而是:從myNameSpace對象\ XYZBundle 1倍的myControllerTest :: testMyAction 1X \測試\控制器

「工廠服務」 服務 「fos_user.profile.form」 的屬性在 文件 「 /var/www/myproject/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/DependencyInjection/../Resources/config/profile.xml「 已從版本2.6開始棄用,並將在3.0中刪除。使用 「工廠」 元素,而是:從myNameSpace對象\ XYZBundle 1倍的myControllerTest :: testMyAction 1X \測試\控制器

的Symfony \分量\ DependencyInjection \定義:: setFactoryService(教義) 是因爲2.6版本已棄用,在3.0中刪除。使用 定義:: setFactory()代替:從myNameSpace對象\ XYZBundle 1倍的myControllerTest :: testMyAction 1X \測試\控制器

「工廠服務」 的服務屬性 「fos_user.entity_manager」 文件 「/ var/www/myproject/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/DependencyInjection /../ Resources/config/orm.xml「 已從版本2.6開始棄用,並將在3.0中刪除。使用 「工廠」 元素,而是:從myNameSpace對象\ XYZBundle 1倍的myControllerTest :: testMyAction 1X \測試\控制器

自2.6版本

的Symfony \分量\ DependencyInjection \定義:: setFactoryMethod(getManager) 已取消,將在3.0中刪除。使用 定義:: setFactory()代替:從myNameSpace對象\ XYZBundle 1倍的myControllerTest :: testMyAction 1X \測試\控制器

服務 「fos_user.profile.form.handler.default」 的 「範圍」 屬性文件 「/var/www/myproject/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/DependencyInjection/../Resources/config/profile.xml」 自版本2.8開始不再使用,並將在3.0中刪除:1x myControllerTest :: testMyAction中的1x來自MyNamespace \ XYZBundle \ Tests \ Controller

服務「fos_user.registration.form」的「工廠方法」屬性 在文件 「/var/www/myproject/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/DependencyInjection/../Resources/config/registration.xml」 已從版本2.6開始棄用,並將在3.0中刪除。使用 「工廠」 元素,而是:從myNameSpace對象\ XYZBundle 1倍的myControllerTest :: testMyAction 1X \測試\控制器

「工廠服務」 文件 的服務 「fos_user.change_password.form」 屬性「 /var/www/myproject/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/DependencyInjection/../Resources/config/change_password.xml「 已從版本2.6開始棄用,並將在3.0中刪除。使用 「工廠」 元素,而是:從myNameSpace對象\ XYZBundle 1倍的myControllerTest :: testMyAction 1X \測試\控制器

在 文件 「的/ var 「工廠法」 服務 「fos_user.entity_manager」 的屬性/www/myproject/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/DependencyInjection/../Resources/config/orm.xml「 已從版本2.6開始棄用,並將在3.0中刪除。使用 「工廠」 元素,而是:從myNameSpace對象\ XYZBundle 1倍的myControllerTest :: testMyAction 1X \測試\控制器

「工廠法」,在文件 的服務 「fos_user.change_password.form」 屬性「 /var/www/myproject/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/DependencyInjection/../Resources/config/change_password.xml「 已從版本2.6開始棄用,並將在3.0中刪除。使用 「工廠」 元素,而是:從myNameSpace對象\ XYZBundle 1倍的myControllerTest :: testMyAction 1X \測試\控制器

的服務 「fos_user.registration.form.handler.default」 在文件中的 「範圍」 屬性 「/var/www/myproject/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/DependencyInjection/../Resources/config/registration.xml」 自版本2.8開始不再使用,將在3.0中刪除:1x 1x在myControllerTest :: testMyAction from MyNamespace \ XYZBundle \ Tests \ Controller

服務的「工廠服務」屬性 「fos_user .registration.form「in 」/var/www/myproject/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/DependencyInjection/../Resources/config/registration.xml「 已從版本2.6開始棄用,並將在3.0中刪除。使用 「工廠」 元素,而是:從myNameSpace對象\ XYZBundle 1倍的myControllerTest :: testMyAction 1X \測試\控制器

「工廠法」 的服務屬性 「fos_user.resetting.form」 在 文件 「 /var/www/myproject/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/DependencyInjection/../Resources/config/resetting.xml「 已從版本2.6開始棄用,並將在3.0中刪除。使用 「工廠」 元素,而是:從myNameSpace對象\ XYZBundle 1倍的myControllerTest :: testMyAction 1X \測試\控制器

後的第一次(緩存了構建)只有這仍然是:

剩餘折舊通知(320)

類 「的Symfony \捆綁\ AsseticBundle \配置\ AsseticResource」 是 執行資源通過ResourceInterface :: isFresh(),因爲 2.8被棄用,將檢查在3.0中刪除:320x的 在myControllerTest :: testMyAction 320x的距離了myNameSpace \ XYZBundle \測試\控制器

我搜索如何抑制過時的警告,因爲它們是從依賴關係,而不是從我的代碼。我發現這個解決方案:

<php> 
<ini name="error_reporting" value="-16385" /> 
</php>  

所以我將此添加到我的phpunit.xml但它並沒有解決問題。希望你能幫助我!

回答

5

Symfony PHPunit橋樑顯示了此過時摘要。它有一個deprecations幫助器,用於存儲所有已觸發的棄用通知,並在所有測試運行後顯示它們。

可以使用SYMFONY_DEPRECATIONS_HELPER env變量配置deprecations幫助程序。這可以有幾個不同的值:

  • weak - 表示當前的棄用通知是由第三方庫引起的。它現在只顯示Remaining deprecation notices (320),測試腳本將返回0(成功)。
  • 任意數字 - 表示允許的棄用通知數量。就你而言,你知道320個棄用聲明是由Assetic而不是你的代碼造成的。如果您將SYMFONY_DEPRECATIONS_HELPER設置爲320,則只要通知數量低於320,構建就會通過。這非常有用,因爲只要引入新的棄用,它就會提醒您。
  • 正則表達式 - 一旦觸發與正則表達式匹配的棄用,就會停止構建。這對調試棄用聲明非常有用。

設置環境變量可以在命令行上進行:

# unix 
$ SYMFONY_DEPRECATIONS_HELPER=320 phpunit -c app 
# windows 
> set SYMFONY_DEPRECATIONS_HELPER=320 
> phpunit -c app 

還是在phpunit.xml(.dist)文件:

<php> 
    <env name="SYMFONY_DEPRECATIONS_HELPER" value="320"/> 
</php> 
+0

使用UNIX命令的變量工作。如果我將env變量放入我的phpunit.xml.dist文件中,它會加載,但測試文件中產生的棄用消息仍然顯示。 – nPoday

+0

我懷疑配置文件處理得太晚了橋 –

+0

@nPoday原來是由於我犯了一個語法錯誤。現在已修好 –