If it's cranking then we can rule out the starter.
1)Fault in the fuel injection system
-You should perform a fuel pressure test, even a fuel cleaner may be beneficial to you at this point as it may resolve your issues.
2) Battery discharged. Check the operation of electrical components.
-You should have you battery tested again, you should test for voltage and cold cranking amp's. Also make sure you check the terminals of the battery. They should not be able to move around and they should be clean.
3. Excessive moisture on, or damage to, ignition components
-Check for spark using a spark tester ($6-7 and easy to use). This will help you determine if you ignition system is working properly.
4. Worn, faulty, or incorrectly gapped spark plugs.
-Check your plugs, make sure you have no residue on them and they should be gapped properly.
5.Broken, loose or disconnected wiring in the starting circuit.
-When attempting to start have someone stand over engine and check for sparks, smoke. Make sure all wires at starter are tight and not damaged.