2010-10-13 25 views
0

在我的PHP Zend Framework应用程序中,我使用APC将某些重复请求缓存到数据库。在应用程序中,我可以使用以下命令清除缓存:apc_clear_cache('user')如何从Selenium测试中清除PHP APC?

我也对此应用程序运行PHPUnit Selenium测试。在添加APC之前,我没有任何问题。我有一个测试,将测试用户添加到数据库(在安装过程中),将它们记录到应用程序中(在测试中),并从数据库中删除用户记录(在拆卸过程中)。在所有测试中都会出现相同的例程,因为您需要登录才能使用应用程序的某些功能。现在APC已经到位,APC缓存创建的第一个用户,但在用户重新创建时不会清除缓存,这意味着登录只能在第一个测试中使用。

我需要弄清楚从我的Selenium测试中清除缓存的方法。我能想到如何做到这一点的唯一方法是创建一个可供公众访问的控制器操作,这样,从我的测试中,我可以打开/cache/clear,它将清除缓存。我尝试了这种方法并且工作,但这种方法似乎并不实用,因为任何人都可以访问该URL。

我该如何解决这种情况?

回答

1

调用脚本是唯一的方法,因为您必须在Apache上下文中运行apc_clear,而不是shell上下文。你只需要保护它,理想地混淆它的存在。只要有密码保护或客户端锁定(限于特定的IP地址),这样做没有任何问题。

2

那么,清除缓存中的TearDown()SetUp()呢?