MSTest自动回滚
说明
使用TransactionScope可控制提交和回滚
Complete: 提交
Dispose: 回滚
MSTest并没有XUnit的IActionTestAttribute,可以通过TestInitializeAttribute(创建事务)和TestCleanupAttribute(事务回滚)实现
操作方法
添加Rollback父类提供TestInitialize和TestCleanup
123456789101112131415161718192021222324252627282930313233 [TestClass] public class Rollback : BaseTest { protected TransactionScope transaction; protected TransactionScopeOption TransactionScopeOption { get; } = TransactionScopeOption.RequiresNew; ...
类型默认值
各类型的默认值使用default(Type)获取,一般用于方法设定参数默认值
类型
默认值
引用类型
null
整数
0
浮点型
0
bool
false
char
‘\0’
enum
(E)0
struct
所有值类型的字段设置为其默认值,所有引用类型的字段设置为null。
Nullable
HasValue = falseValue属性未定义值=null
获取调用堆栈的方法名与类名
命名空间12using System.Diagnostics;using System.Reflection;
获取堆栈
参考: https://docs.microsoft.com/zh-cn/dotnet/api/system.diagnostics.stacktrace?view=net-5.0
1var stackTrace = new StackTrace();
获取自身信息帧未指定跳过的帧数时,默认从自身帧开始,因此0表示自身帧
1var frame = stackTrace.GetFrame(0)
方法12var method = frame.GetMethod();var methodName = method.Name;
类12var type = method.ReflectedType;var typeName = type.Name; //Name为类名;FullName为全限定名
MVC的控制台输出
参考:https://stackoverflow.com/questions/137660/where-does-console-writeline-go-in-asp-net/879928#879928
在Asp.net MVC项目中所有的stdout和stderr都会被重定向到Stream.Null,即不输出。
可以使用System.Diagnostics.Debug.WriteLine进行Debug输出,将在Output窗口的Debug下显示
VS设置JS智能提示
全局在需要写JS的根目录下创建文件:_references.js,右击选择“自动同步JavaScript引用”(Auto-sync JavaScript References)
该文件生成JS引用
1/// <reference path="JS文件路径.js" />
该目录下所有JS文件将全部使用该引用进行提示。
单文件若只需要为某个文件添加提示,可在文件顶部添加对该文件的引用
1/// <reference path="JS文件路径.js" />
该文件将使用引入的JS文件进行提示。
Scripts文件夹
nuget下载的前端库将会存储到Scripts文件夹,这些库会在packages.config显示,但不会在References显示(并不是C#类库)
例如:jquery,popper,bootstrap等
mysql NullPointerException at com.mysql.jdbc.PreparedStatement.setTimestamp(PreparedStatement.java
mysql-connector-java 5.1.47版本的BUG,可更换为其他版本,如5.1.46
mocha支持es6
问题node不支持import格式的导入方式
解决方法
安装babel等解析器
1npm install --save-dev babel-register babel-preset-env
添加babel配置文件
123456.babelrc{ "presets": [ "env" ]}
启用mocha对ES6的支持
1mocha --require babel-register
error ENOSPC System limit for number of file watchers reached
错误System limit for number of file watchers reached
错误原因操作系统可监控文件超出预设值,Linux默认为65535,可设置的最大值为524288
解决方法
查看当前watcher数量
1cat /proc/sys/fs/inotify/max_user_watches
修改wathcer数量
在文件/etc/sysctl.conf后追加
1fs.inotify.max_user_watches=数量
使设置生效
1sudo sysctl -p
其他每个wathcer会占用1080b内存,则524288个watcher约占用540MB内存,请适当设置
参考https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file-changes-in-this-large-workspace-error-enospc
Could not run curl-config
问题安装pyspider依赖库pycurl时报错
Could not run curl-config
解决办法
已安装curl
apt-get install libcurl4-gnutls-dev
重新安装pycurl