可以在IntelliJ IDEA 12中运行单个选定的JUnit测试方法,但是ScalaTest似乎无法做到这一点.你可以运行整个测试类,或者什么都没有,但是在IntelliJ IDEA 12中似乎没有更好的控制ScalaTest(我还没有尝试过IDEA 13.)
所以,问题是:有没有办法在IntelliJ中只执行一个选定的ScalaTest测试方法(就像使用JUnit测试方法一样).
下面是一个代码示例,其测试方法我想在IntelliJ中单独运行.知道怎么做吗?
我试过JUnitRunner,但没有帮助.
class NodeDAOTest extends FlatSpec with SessionAware with BeforeAndAfter { before{ IM3_SessionFactory.removeData println("before is running")} println("NodeDAOTest constructor.") def numberOfNodes=initAndCloseDB(transaction{NodeDAO.numberOfNodes}) "Node" can "be added to DB and removed." in { val n =new TextNode assert(numberOfNodes===0) initAndCloseDB { transaction{session save n}} assert(numberOfNodes===1) initAndCloseDB { transaction{deleteNode(n)}} assert(numberOfNodes===0) } def getTag= initAndCloseDB {transaction{ session.createQuery("from Tag").list().get(0).asInstanceOf[Tag]}} def getNode=initAndCloseDB {transaction{ session.createQuery("from Node").list().get(0).asInstanceOf[Node]} } it can "be tagged and untagged" in { val t=new Tag val n=new TextNode assert(numberOfNodes==0,"before adding one tag (and Node), there should be 0 Node in the DB") initAndCloseDB{ transaction {addTag(t,n) }} assert (getNode.getNumberOfTags===1) assert (getTag.getNodes.size===1) initAndCloseDB(transaction{removeTag(t,n)}) assert (numberOfNodes==1,"after removing the tag, there should be 1 Node in the DB") assert (getNode.getNumberOfTags===0) assert (getTag.getNodes.size===0) } "Tagged Node" can "be removed." in { val f=new TagAndNodeFixture assert(numberOfNodes==1) initAndCloseDB{ transaction {addTag(f.t,f.n) }} initAndCloseDB { transaction{deleteNode (f.n)} } assert(numberOfNodes==0) // the tag will be removed from the node } "Tag" can "be deleted and that will be removed from in-memory Nodes" in{ } }
František Ha.. 14
我使用IntelliJ IDEA 13,我可以在使用时运行单个测试FunSuite
- 将光标放在测试中并按Alt+ Shift+ F10然后测试就在那里.FlatSpec
测试是不可能的.
它最近被添加,我记得它甚至没有在版本12中工作FunSuite
.