I can completely understand having a young child constantly pushing the envelope. I do not believe in spanking. I do believe in treating children as the individual people they are...and at the end of the day, I am the parent, they are the child.
My son has kept me adapting from day one. Something would work for awhile, but then, he'd do a benefit/risk analysis, and when something was no longer a risk to him; I'd have to change strategies. An example, when he was five, I told him he would lose the privaledge of using a treasured item for 3 days (that's a long time for us) if he slammed his door in anger. He gently walked into his room. Came back out a half a minute later and said "you know what, it is totally worth it!" and went and slammed the door.
a nearly three year old pushes. That is what they do. They are feeling their independence and are trying to stretch their wings. Here are a few suggestions...and remember, to try to adapt as the need arises:
Give him some responsibility. Use a chart if you like. Let him be a part of creating a chore chart. Even if it is brushing his teeth, putting his PJs on and going to bed. Have him become Mommy's little helper. At the grocery store, I gave my son a list to check items off, using pictures. And would let him take some items from the shelve and put it in the cart. Shopping got a little slower, but much easier...of course, he said "Ah, now I know why people have kids! It's to get the soup off the bottom shelf!" (age 3).
Take time to let him express himself. Use a conversational tone, and open ended questions. Find out what he is thinking and feeling. Sometimes what he thinks he wants isn't what he really wants.
Give choices. Two is enough. They can even be what they call the "False choice" such as "You need to pick up the ball, and pick up your dirty clothes. Which one do you want to do first". In this way, he feels he has some control, even though you are still telling him what needs to be done.
Use positive reinforcement when you can. Young children hear NO! so often that it loses its effectiveness.
Hope this helps.