I wrote the sentence "We will go as long as the shops open." on my English test in the context of we don't know if the shops will open and if they won't, we won't go. My English teacher said that is grammatically correct, but that the 2nd part lacks something. I disagree with her. Do you think she's right?
I am a native speaker and would say exactly that phrase. The problem is, as your teacher and @PEDant said, you are missing something on the 2nd part to make the written form correct.
To be grammatically correct you need to either amend the sentence to "We will go as long as the shop is open." or you could contract the sentence by adding an apostrophe in the word shops to make the sentence read "We will go as long as the shop's open."
Another way of changing the sentence for a slightly different meaning (using the plural shops) would be to say "We will go as long as the shops are open." but be aware that you cannot contract that sentence with an apostrophe.