Bonjour à tous,
Pourriez vous m'aider s'il vous plait?
Je veux utiliser RefreshDatabase pour effacer les données utilisé durant les tests. Seul soucis J'ai des erreurs lorsque j'utilise avec phpunit (si je comment ça fonctionne).
Si je regarde dans le fichier de migration
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163 ) Tests\Services\ApiServiceTest::testUserLogin Error: Undefined class constant 'STATUS_PREDUCT_CREATED' /application/database/migrations/2018_08_06_185448_add_state_to_product.php:15 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:360 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:367 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:178 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:147 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:96 /application/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php:71 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:29 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:87 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:31 /application/vendor/laravel/framework/src/Illuminate/Container/Container.php:572 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:183 /application/vendor/symfony/console/Command/Command.php:255 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:170 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:198 /application/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php:55 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:29 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:87 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:31 /application/vendor/laravel/framework/src/Illuminate/Container/Container.php:572 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:183 /application/vendor/symfony/console/Command/Command.php:255 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:170 /application/vendor/symfony/console/Application.php:886 /application/vendor/symfony/console/Application.php:262 /application/vendor/symfony/console/Application.php:145 /application/vendor/laravel/framework/src/Illuminate/Console/Application.php:89 /application/vendor/laravel/framework/src/Illuminate/Console/Application.php:188 /application/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:250 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/PendingCommand.php:136 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/PendingCommand.php:218 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php:55 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:55 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:18 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:104 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:71 /application/tests/Services/ApiVcServiceTest.php:36 2) Tests\Services\ApiServiceTest::testAddPreduct Error: Undefined class constant 'STATUS_PREDUCT_CREATED' /application/database/migrations/2018_08_06_185448_add_state_to_product.php:15 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:360 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:367 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:178 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:147 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:96 /application/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php:71 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:29 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:87 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:31 /application/vendor/laravel/framework/src/Illuminate/Container/Container.php:572 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:183 /application/vendor/symfony/console/Command/Command.php:255 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:170 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:198 /application/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php:55 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:29 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:87 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:31 /application/vendor/laravel/framework/src/Illuminate/Container/Container.php:572 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:183 /application/vendor/symfony/console/Command/Command.php:255 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:170 /application/vendor/symfony/console/Application.php:886 /application/vendor/symfony/console/Application.php:262 /application/vendor/symfony/console/Application.php:145 /application/vendor/laravel/framework/src/Illuminate/Console/Application.php:89 /application/vendor/laravel/framework/src/Illuminate/Console/Application.php:188 /application/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:250 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/PendingCommand.php:136 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/PendingCommand.php:218 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php:55 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:55 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:18 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:104 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:71 /application/tests/Services/ApiVcServiceTest.php:36 3) Tests\Services\ApiServiceTest::testSubmitPreduct Error: Undefined class constant 'STATUS_PREDUCT_CREATED' /application/database/migrations/2018_08_06_185448_add_state_to_product.php:15 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:360 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:367 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:178 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:147 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:96 /application/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php:71 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:29 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:87 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:31 /application/vendor/laravel/framework/src/Illuminate/Container/Container.php:572 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:183 /application/vendor/symfony/console/Command/Command.php:255 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:170 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:198 /application/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php:55 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:29 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:87 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:31 /application/vendor/laravel/framework/src/Illuminate/Container/Container.php:572 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:183 /application/vendor/symfony/console/Command/Command.php:255 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:170 /application/vendor/symfony/console/Application.php:886 /application/vendor/symfony/console/Application.php:262 /application/vendor/symfony/console/Application.php:145 /application/vendor/laravel/framework/src/Illuminate/Console/Application.php:89 /application/vendor/laravel/framework/src/Illuminate/Console/Application.php:188 /application/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:250 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/PendingCommand.php:136 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/PendingCommand.php:218 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php:55 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:55 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:18 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:104 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:71 /application/tests/Services/ApiVcServiceTest.php:36 4) App\Test\Services\FluxProcessTest::testProcessFlux Error: Undefined class constant 'STATUS_PREDUCT_CREATED' /application/database/migrations/2018_08_06_185448_add_state_to_product.php:15 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:360 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:367 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:178 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:147 /application/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:96 /application/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php:71 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:29 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:87 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:31 /application/vendor/laravel/framework/src/Illuminate/Container/Container.php:572 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:183 /application/vendor/symfony/console/Command/Command.php:255 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:170 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:198 /application/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php:55 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:29 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:87 /application/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:31 /application/vendor/laravel/framework/src/Illuminate/Container/Container.php:572 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:183 /application/vendor/symfony/console/Command/Command.php:255 /application/vendor/laravel/framework/src/Illuminate/Console/Command.php:170 /application/vendor/symfony/console/Application.php:886 /application/vendor/symfony/console/Application.php:262 /application/vendor/symfony/console/Application.php:145 /application/vendor/laravel/framework/src/Illuminate/Console/Application.php:89 /application/vendor/laravel/framework/src/Illuminate/Console/Application.php:188 /application/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:250 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/PendingCommand.php:136 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/PendingCommand.php:218 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php:55 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:55 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:18 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:104 /application/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:71 /application/tests/Services/FluxProcessTest.php:39
En effet la constante STATUS_PREDUCT_CREATED n'existe pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <?php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Migrations\Migration; class AddStateToProduct extends Migration { public function up() { Schema::table('vendor_flux_product', function($table) { $table->string('state')->default(\App\Models\VendorFluxProduct::STATE_PENDING_VALIDATION); $table->timestamps(); }); DB::statement(sprintf('UPDATE VC_vendor_flux_product SET state = "%s" WHERE status = "%s"', \App\Models\VendorFluxProduct::STATE_PENDING_VALIDATION, \App\Models\VendorFluxProduct::STATUS_PREDUCT_CREATED)); DB::statement(sprintf('UPDATE VC_vendor_flux_product SET state = "%s" WHERE status = "%s"', \App\Models\VendorFluxProduct::STATE_VALIDATED, \App\Models\VendorFluxProduct::STATUS_PRODUCT_ON_VC)); } public function down() { Schema::table('vendor_flux_product', function($table) { $table->dropColumn('state'); $table->dropTimestamps(); }); } }
Du coup je ne comprend pas trop, lors d'une migration comment s'execute les fichiers? Ce fichier est assez ancien, c'est un projet que j'ai récup pourquoi est-il executé? Comment je peux résoudre le problème?
Merci de votre aide
Edit: finalement le problème venait d'un insertion par une migration en utilisant un état qui n'existe plus dans le smodèles j'ai supprimé les insertions et ça roule.
Partager