私はSpring Web MVCプロジェクトで作業し、データベース操作のためのテストを書きます。テストクラスは、プロジェクトの構造は、私はそれがない、のでdatasource.xml
は、開くことができない旨のエラーを取得し、以下java.io.FileNotFoundException:クラスパスのリソースを開くことができません
を提供する
@ActiveProfiles("dev")
@ContextConfiguration(locations = {
"classpath:com/puut/bitcoin/config/dao-context.xml",
// "classpath:com/puut/bitcoin/config/security-context.xml",
"classpath:com/puut/bitcoin/dao/test/config/datasource.xml"
})
@RunWith(SpringJUnit4ClassRunner.class)
public class OfferDaoTests {
@Autowired
private DataSource dataSource;
@Autowired
private OffersDao offersDao;
@Before
public void init() {
JdbcTemplate jdbc = new JdbcTemplate(dataSource);
jdbc.execute("delete from offers");
jdbc.execute("delete from users");
jdbc.execute("delete from authorities");
}
@Test
public void testCreateUser() {
Offer offer = new Offer("johnwpurcell", "[email protected]", "This is a test offer.");
assertTrue("Offer creation should return true", offersDao.create(offer));
List<Offer> offers = offersDao.getOffers();
assertEquals("Should be one offer in database.", 1, offers.size());
assertEquals("Retrieved offer should match created offer.", offer, offers.get(0));
// Get the offer with ID filled in.
offer = offers.get(0);
offer.setText("Updated offer text.");
assertTrue("Offer update should return true", offersDao.update(offer));
Offer updated = offersDao.getOffer(offer.getId());
assertEquals("Updated offer should match retrieved updated offer", offer, updated);
offersDao.delete(offer.getId());
List<Offer> empty = offersDao.getOffers();
assertEquals("Offers lists should be empty.", 0, empty.size());
}
}
、以下に提供されます存在する。その存在は確かにあり、その道も正しいです。 datasource.xml
ファイルで
Caused by: java.io.FileNotFoundException: class path resource [com/puut/bitcoin/dao/test/config/datasource.xml] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:330)
、私はApplication context is not configured for this file
とIntelliJ
がこれを行うには、いくつかのオプションを文字通り提供されていることがわかります。私は、次のようにOfferDaoTests
でこのファイルを定義しているので、これは私にとって非常に明確ではありません
、
@ContextConfiguration(locations = {
"classpath:com/puut/bitcoin/config/dao-context.xml",
// "classpath:com/puut/bitcoin/config/security-context.xml",
"classpath:com/puut/bitcoin/dao/test/config/datasource.xml"
})
私はweb.xml
ようにファイルを定義するポイントが表示されませんよくこれは、データベース操作をテストするためだけです。また、少し前にここにいなかったweb.xml
に突然何らかのエラーが発生します。
仮定する 'datasource.xml'あなたは –
がクラスパス上の' test'です正しく参照しているわけではないですテストパッケージにありますか? –
'IntellIJ'から' classpath'を自動的に '(CMD + ALT + SHIFT + C)'にして正しいと思われます。私は 'src'から完全なクラスパスを使用しようとしました。それは助けにもならない。 – Arefe