Maybe your procedure calls other procedures, which also uses dbms_output.
Other issue could be if you call dbms_output in a body of a loop. Then the amount of the generated output would depend on the number of iterations.
How to resolve that? - Agree with PANDO
1) Reduce the amount of output data - You do not need for example to output "Iteration 1 passed" "It 1" would bring the same info to you
2) You may use autonomous transaction procedure to log the data into a table instead of using DBMS_OUTPUT. That would be slower, so you should think of mechanism to suppress that in prod.
3) You may create your own package, where you define the size of the buffer. Then you can use dbms_output to dump the buffer on the screen, or try to use table function to cast the buffer to table and then select from it or....

Cheers